0

我对来自网站的 FB Like 有疑问。我有两个喜欢的功能,页面帖子和页面照片。当我点赞 FB Post 时,它会起作用,并且 Facebook 主页帖子和网站都会计算喜欢。但是,当我尝试点赞一张照片时,网站上的点赞计数器会增加到 1,然后在一秒钟后下降到 0。

我有以下配置:

<div id="fb-root"></div>
        <script>(function(d, s, id) {
          var js, fjs = d.getElementsByTagName(s)[0];
          if (d.getElementById(id)) return;
          js = d.createElement(s); js.id = id;
          js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=111111111111111111111";
          fjs.parentNode.insertBefore(js, fjs);
        }(document, 'script', 'facebook-jssdk'));</script>

喜欢按钮

'<fb:like href="' + urlToLike + '" send="false" layout="button_count" width="170" show_faces="false"></fb:like>';

用于帖子和照片的 URL,例如:

photoUrlToLike = 'http://www.facebook.com/photo.php?fbid=111111111111&set=a.502954436404881.121467.265145956852398&type=1&permPage=1';
postUrlToLike = 'http://www.facebook.com/mydummypage/posts/1111111111111111';

所以我的问题是,既然用户可以喜欢我网站上的帖子,为什么它也不适用于照片。我在这里想念什么?

编辑

我找到了 facebook 照片 API:

http://developers.facebook.com/docs/reference/api/photo/

这应该很容易执行,但我现在几个小时都无法做到这一点。引用照片api:

likes


Create

You can like a photo by issuing a HTTP POST request to PHOTO_ID/likes connection with the publish_stream permission. No parameters necessary.

假设我的页面网址是:

http://www.facebook.com/dummypage

我的照片 ID 是4234234234131。照片在虚拟页面的墙上。

我的帖子 URL 会是什么样子?我应该向哪个 Url 发出 POST 请求?

4

1 回答 1

2

我最近对同样的问题感到困扰。经过几个小时的学习,我明白这不是我的代码或我身边的任何问题。这是一个小错误,甚至向 facebook 报告。请在此处查看: https ://developers.facebook.com/bugs/530674523672388?browse=external_tasks_search_results_51fd2ae4d0e0e1621568068

另一件重要的事情是,问题说喜欢适用于帖子但不适用于照片。但我得到了不同的东西。包含外部链接内容和任何其他内容附件的帖子也会出现同样的问题!

如问题所述,我已经使用系统管理了喜欢的帖子:您可以通过向具有 publish_stream 权限的 PHOTO_ID/likes 连接发出 HTTP POST 请求来点赞照片。不需要参数。当然,每个用户都需要一个有效的访问令牌才能正确执行此操作。您可以使用Facebook SDK for PHP通过授权每个用户来获取访问令牌。它适用于所有标准对象(帖子、照片、视频已正确测试),只需要传递照片、帖子或视频的有效 id。

代码很简单,我已经为此显示了假的 facebook 喜欢和喜欢(喜欢之后)按钮:

function like_std_object($object_id){
    try{
        $like=$facebook->api('/$object_id/likes','post'); //post a like using api
    }catch(FacebookApiException $e){
        return false;
    }
}
function unlike_std_object($object_id){
    try{
        $like=$facebook->api('/$object_id/likes','delete'); //post a un-like using api
    }catch(FacebookApiException $e){
        return false;
    }
}
于 2013-08-03T17:02:06.723 回答