我在网站上遇到了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>';
用于帖子和照片的网址:
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
。照片位于虚拟页面的墙上。
我的帖子网址如何?我应该向哪个网址发送POST请求?
答案 0 :(得分:2)
我最近对同样的问题感到困扰。经过几个小时的学习,我明白这不是我的代码或我身边的任何问题。这是一个小错误,甚至报告给Facebook。请点击这里: https://developers.facebook.com/bugs/530674523672388?browse=external_tasks_search_results_51fd2ae4d0e0e1621568068
另一件重要的事情是,问题说喜欢适用于帖子而不适用于照片。但我得到的东西与此不同。包含外部链接内容和任何其他内容的附件的帖子也会出现同样的问题!
我已经使用系统管理过帖子,如上所述:您可以通过向PHOTO_ID /喜欢与publish_stream权限的连接发出HTTP POST请求来表示照片。没有必要的参数。当然,您需要一个有效的访问令牌,以便每个用户正确执行此操作。您可以使用 Facebook SDK for PHP 通过授权每个用户获取访问令牌。它适用于所有标准对象(帖子,照片,视频都经过正确测试),只需要传递有效的照片,帖子或视频ID。
代码很简单,我已经展示了假的facebook和&amp;喜欢(喜欢之后)按钮:
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;
}
}