Facebook 点赞不会单独计算每个 "story"
Facebook like doesn't count each "story" individually
Description :
我有一个 laravel 项目,用户可以通过故事形式提交。每个故事都有一个标题和一个主题。经管理面板批准后,可以在 "archive" 页面(也是索引页面)上看到该故事,该页面显示所有已批准的故事。每个故事都有一个类似 facebook 的按钮,因此我们可以计算每个故事有多少个赞。我使用下面的代码来检查它为特定 url 返回的内容:
http://graph.facebook.com/?fields=og_object%7Blikes.summary(true).limit(0)%7D,share&id=MY_URL_HERE
- MY_URL_HERE 具有类似于域的结构。com/story/1 其中“1”是特定故事的 ID。
使用 url : domain.com/story/1 ,可以返回如下信息:
{
"og_object": {
"likes": {
"data": [
],
"summary": {
"total_count": 1,
"can_like": false,
"has_liked": false
}
},
"id": "1702103726528488"
},
"share": {
"comment_count": 0,
"share_count": 1
},
"id": "http.domain.com/story/1"
}
我们可以看到点赞数、分享数等。此外,对于 ID 为“1”的故事,它有一个 ID "id":“1702103726528488”
What i think it's the problem :
无论我在 url 中输入什么故事 ID,它总是 returns ID 1702103726528488,我想这意味着 facebook 无法识别它是不同的 url -所以应该使用不同的 ID。
What is interesting :
如果我将路线名称更改为:
domain.com/story/{id}
到 domain.com/{id}
有效。使用上面提供的图 facebook url 返回的 object 中的每个 ID 都是不同的 url。
有什么想法吗?
Rest information :
每个故事的 facebook 点赞按钮:
<div class="content-single-more">
<a href="{{ url('story/'. $story->user_id) }}">READ THE STORY</a> // it redirects to domain.com/story/id
</div>
路由:
Route::get('/', [
'as' => 'index',
'uses' => 'StoriesController@getStories'
]);
Route::get('/index/{paginate}', [
'as' => 'index',
'uses' => 'StoriesController@paginateIndex'
]);
Route::get('story/{id}', [
'as' => 'story',
'uses' => 'StoriesController@getSingleStory',
]);
StoriesController
public function getStories(){
// css class to return
$body_class = "homepage";
$stories = DB::table('users_stories')->select('user_id', 'story_title', 'story')->where('state', '=', 'approved')->paginate(6);
// fgn first value
$fgn = 6;
return view('index', compact('stories', 'body_class', 'fgn'));
}
public function paginateIndex($paginate){
// css class to return
$body_class = "homepage";
$fgn = $paginate * 1;
$stories = DB::table('users_stories')->select('user_id', 'story_title', 'story')->where('state', '=', 'approved')->paginate($fgn);
return view('index', compact('stories', 'body_class', 'fgn'));
}
public function getSingleStory($id){
$single_stories = UserStoriesModel::where('state', '=', 'approved')->where('user_id', '=', $id)->get(['user_id', 'story_title', 'story']);
// dd($single_stories);
// css class to return
$body_class = "single-post";
// get the current user
$user = UserStoriesModel::find($id);
if(!$user){
return redirect()->route('index');
}
// get previous user id
$previous_story = UserStoriesModel::where('user_id', '<', $user->user_id)->where('state', '=', 'approved')->max('user_id');
// get next user id
$next_story = UserStoriesModel::where('user_id', '>', $user->user_id)->where('state', '=', 'approved')->min('user_id');
//dd($previous_story);
return view('story', compact('single_stories', 'body_class', 'next_story', 'previous_story'));
}
您需要确保 Facebook 从您分享的实际 URL 中获取内容。
如果您有规范的 URL 集,Facebook 会将其视为此内容的“真实”URL。因此,要么删除它,要么指定 URL 您希望 Facebook 通过 og:url
元标记明确考虑“真实”的。
Description :
我有一个 laravel 项目,用户可以通过故事形式提交。每个故事都有一个标题和一个主题。经管理面板批准后,可以在 "archive" 页面(也是索引页面)上看到该故事,该页面显示所有已批准的故事。每个故事都有一个类似 facebook 的按钮,因此我们可以计算每个故事有多少个赞。我使用下面的代码来检查它为特定 url 返回的内容:
http://graph.facebook.com/?fields=og_object%7Blikes.summary(true).limit(0)%7D,share&id=MY_URL_HERE
- MY_URL_HERE 具有类似于域的结构。com/story/1 其中“1”是特定故事的 ID。
使用 url : domain.com/story/1 ,可以返回如下信息:
{
"og_object": {
"likes": {
"data": [
],
"summary": {
"total_count": 1,
"can_like": false,
"has_liked": false
}
},
"id": "1702103726528488"
},
"share": {
"comment_count": 0,
"share_count": 1
},
"id": "http.domain.com/story/1"
}
我们可以看到点赞数、分享数等。此外,对于 ID 为“1”的故事,它有一个 ID "id":“1702103726528488”
What i think it's the problem :
无论我在 url 中输入什么故事 ID,它总是 returns ID 1702103726528488,我想这意味着 facebook 无法识别它是不同的 url -所以应该使用不同的 ID。
What is interesting :
如果我将路线名称更改为:
domain.com/story/{id}
到 domain.com/{id}
有效。使用上面提供的图 facebook url 返回的 object 中的每个 ID 都是不同的 url。
有什么想法吗?
Rest information :
每个故事的 facebook 点赞按钮:
<div class="content-single-more">
<a href="{{ url('story/'. $story->user_id) }}">READ THE STORY</a> // it redirects to domain.com/story/id
</div>
路由:
Route::get('/', [
'as' => 'index',
'uses' => 'StoriesController@getStories'
]);
Route::get('/index/{paginate}', [
'as' => 'index',
'uses' => 'StoriesController@paginateIndex'
]);
Route::get('story/{id}', [
'as' => 'story',
'uses' => 'StoriesController@getSingleStory',
]);
StoriesController
public function getStories(){
// css class to return
$body_class = "homepage";
$stories = DB::table('users_stories')->select('user_id', 'story_title', 'story')->where('state', '=', 'approved')->paginate(6);
// fgn first value
$fgn = 6;
return view('index', compact('stories', 'body_class', 'fgn'));
}
public function paginateIndex($paginate){
// css class to return
$body_class = "homepage";
$fgn = $paginate * 1;
$stories = DB::table('users_stories')->select('user_id', 'story_title', 'story')->where('state', '=', 'approved')->paginate($fgn);
return view('index', compact('stories', 'body_class', 'fgn'));
}
public function getSingleStory($id){
$single_stories = UserStoriesModel::where('state', '=', 'approved')->where('user_id', '=', $id)->get(['user_id', 'story_title', 'story']);
// dd($single_stories);
// css class to return
$body_class = "single-post";
// get the current user
$user = UserStoriesModel::find($id);
if(!$user){
return redirect()->route('index');
}
// get previous user id
$previous_story = UserStoriesModel::where('user_id', '<', $user->user_id)->where('state', '=', 'approved')->max('user_id');
// get next user id
$next_story = UserStoriesModel::where('user_id', '>', $user->user_id)->where('state', '=', 'approved')->min('user_id');
//dd($previous_story);
return view('story', compact('single_stories', 'body_class', 'next_story', 'previous_story'));
}
您需要确保 Facebook 从您分享的实际 URL 中获取内容。
如果您有规范的 URL 集,Facebook 会将其视为此内容的“真实”URL。因此,要么删除它,要么指定 URL 您希望 Facebook 通过 og:url
元标记明确考虑“真实”的。