像Facebook这样的网站不会单独计算每个“故事”

像Facebook这样的网站不会单独计算每个“故事”,facebook,laravel,laravel-5.4,Facebook,Laravel,Laravel 5.4,说明: 我有一个laravel项目,用户可以通过一个故事的形式提交。每个故事都有一个标题和一个主题。经管理小组批准后,可以在存档页面上看到该故事,该页面也是显示所有已批准故事的索引页面。每个故事都有一个类似facebook的按钮,因此我们可以计算每个故事有多少人喜欢。我使用以下代码检查针对特定url返回的内容: 我的URL有一个类似domain.com/story/1的结构,其中1是特定故事的id。 使用url:domain.com/story/1,可以返回如下信息: { "og_obje

说明:

我有一个laravel项目,用户可以通过一个故事的形式提交。每个故事都有一个标题和一个主题。经管理小组批准后,可以在存档页面上看到该故事,该页面也是显示所有已批准故事的索引页面。每个故事都有一个类似facebook的按钮,因此我们可以计算每个故事有多少人喜欢。我使用以下代码检查针对特定url返回的内容:

我的URL有一个类似domain.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:1702103726528488

我认为问题在于:

无论我在url中输入了什么故事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>
StoriesController


您需要确保Facebook从您共享的实际URL获取内容


如果你有一个规范的URL集,Facebook会将其作为该内容的“真实”URL。所以,要么删除它,要么指定脸谱网要通过OG:URL元标签显式地考虑“真实”的URL。< /P>你是否已经通过打开的图形元标签指定了正确的URL?没有重定向或规范URL干扰?Facebook调试工具说什么?@CBroe规范URL应该与获取的URL相同吗?现在规范的URL总是domain.com索引,当然不是特定的故事,否则Facebook将从该URL获取元数据。如果要保留规范,请指定og:url@CBroe,因为我已经更改了它,它可以工作了,但是“喜欢”和“共享”按钮的计数相同。在同一页面上有两个按钮,一个相似,两个共享,用于设计的每个故事:
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',
]);
 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'));
  }