我有一张photoalbum,我想允许Facebook用户喜欢几张照片。 例如,我有一张photoalbum,有5张照片。我想要这样的东西:
可以使用单一注册申请吗?
答案 0 :(得分:0)
根据您的应用,有几种方法可以执行此操作。
如果您未对应用中的用户进行身份验证,则表示您已为每个图片生成网址,然后为每个图片插入相似的按钮。例如,您可以在应用中创建名为photo.php的页面,该页面会获取ID并显示该图像。然后,您可以为每个图片添加相似的按钮,并将URL设置为应用中的照片网址:
<div class="fb-like"
data-href="http://apps.facebook.com/myapplication/photo.php?id=1"
data-layout="button_count" data-action="like" data-show-faces="false"
data-share="false">
</div>
<div class="fb-like"
data-href="http://apps.facebook.com/myapplication/photo.php?id=2"
data-layout="button_count" data-action="like" data-show-faces="false"
data-share="false">
</div>
<div class="fb-like"
data-href="http://apps.facebook.com/myapplication/photo.php?id=3"
data-layout="button_count" data-action="like" data-show-faces="false"
data-share="false">
</div>
如果图片在Facebook相册中,那么通过这些按钮获得的图片将不会计入Facebook相册中的照片。此外,如果您希望在每个喜欢的用户时间轴中显示漂亮的详细信息,那么您应该确保在photo.php页面上包含相关的Open Graph元标记。您可以从照片ID动态生成这些内容。没有身份验证,就无法为Facebook对象(如照片)生成类似Facebook的按钮。
如果您正在对用户进行身份验证,那么您可以采用不同的方式进行身份验证 - 您可以将其设置为使应用程序中收到的内容实际上计入照片在Facebook相册中的相似内容。您将需要“publish_actions”权限以及“publish_stream”。使用jQuery,您可以将类似于下面的事件绑定到您自己的自定义按钮:
$('#LikePhoto1').click(function(){
$.ajax({
type: 'POST',
url: 'https://graph.facebook.com/PHOTO_OBJECT_ID/likes?method=POST&format=json&access_token=ACCESS_TOKEN',
success: function(res) {
alert('liked');
}
});
});
您需要找到与该相册中该照片相关的PHOTO_OBJECT_ID - 我建议您使用Graph API Explorer执行此操作。此外,您需要将URL中的ACCESS_TOKEN设置为当前经过身份验证的用户的访问令牌。
因为这是一个自定义按钮,它不显示喜欢的数量等 - 您需要使用URL https://graph.facebook.com/PHOTO_OBJECT_ID/likes?access_token=ACCESS_TOKEN
从Graph API查询