Ι有laravel項目,用戶可以通過表單提交一個故事。每個故事都有一個標題和一個主題。在經過管理小組批准後,故事可以在顯示所有批准的故事的「存檔」頁面(也是索引頁面)中看到。每個故事都有一個像按鈕一樣的Facebook,所以我們可以計算每個故事有多少個喜歡。我用下面的代碼來檢查什麼它返回一個特定網址:
http://graph.facebook.com/?fields=og_object%7Blikes.summary(true).limit(0)%7D,share&id=MY_URL_HERE
- MY_URL_HERE有一個像domain.com/story/1的結構,其中「1」是具體的故事的ID。
使用的網址: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」
什麼,我認爲這就是問題所在:
無論我在URL中放入什麼Story ID,它總會返回ID 1702103726528488,我想這意味着Facebook無法識別它是不同的url--所以應該使用不同的ID。
有趣的是:
如果我改變路線名稱由:
domain.com/story/{id}
到domain.com/{id}
它的工作原理。使用該URL每個ID在由上面提供的圖表facebook url返回的對象中是不同的。
任何想法?
休息信息:
像按鈕每個故事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' => '[email protected]ies'
]);
Route::get('/index/{paginate}', [
'as' => 'index',
'uses' => '[email protected]'
]);
Route::get('story/{id}', [
'as' => 'story',
'uses' => '[email protected]',
]);
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'));
}
您是否通過Open Graph meta標籤指定了正確的URL?沒有重定向或規範網址干擾? Facebook調試工具說什麼? – CBroe
@CBroe規範URL是否與獲取的URL相同?現在,Canonical URL始終是domain.com(索引),而不是特定的故事 –
當然,否則Facebook將從該URL獲取元數據。 (如果你想離開規範,那麼指定og:url。) – CBroe