检查用户是否可以在朋友的墙上写字

时间:2012-02-28 17:55:55

标签: facebook facebook-wall

如果用户可以在特定朋友的墙上写字,有没有办法检查PHP SDK?

示例:

if ($facebook_can_write_to->'123456789') echo "You can write on this friend's Wall";

2 个答案:

答案 0 :(得分:1)

使用FQL表(http://developers.facebook.com/docs/reference/fql/user/),您可以检查当前用户是否可以通过加载好友'来查看当前用户是否可以发布到朋友墙。用户信息,特别是can_post字段。

can_post bool 观众是否可以发布到用户的墙上。

答案 1 :(得分:0)

根据documentation,如果该用户授予您* publish_stream *权限,您可以在用户朋友墙上发帖:

<强> publish_stream

  

使您的应用能够向用户发布内容,评论和赞   流和用户的朋友的流。

在某些情况下,您将无法执行此操作,例如,如果某个用户阻止了您的应用程序,那么我想如果您尝试将会失败,那么您应该只检查从Facebook返回的响应api请求,看它是否有效。


修改

据我所知,你不能问api(也不能通过fql)“我的应用程序可以发布到这个用户墙”,你只能问“让这个用户授予我的应用程序publish_stream权限”。

如果我明白你想要什么,我可能会为你提供一些解决方案。 我说向用户显示在朋友墙上发帖的选项。 当用户选择此选项时,尝试在朋友墙上发布(我假设您正在使用ajax进行该调用),如果失败则返回某种代码,然后在客户端检查该代码,如果它返回使用javascript sdk打开一个对话框。

对话框有两种选择,您可以像这样使用Feed Dialog

var obj = {
    method: 'feed',
    to: "FRIEND_ID",
    name: 'A message',
    caption: 'Just trying something',
    description: 'This is how to post on a friends wall'
};

FB.ui(obj, function(response) { console.log(response); });

或者您可以使用Send Dialog

FB.ui({
    method: 'send',
    to: "FRIEND_ID",
    name: 'A message',
    link: 'LINK_URL',
});

有了这个,虽然你必须发布一个链接,我不确定这是否适合你。为用户尝试失败后,您可以保存该数据并在以后使用它。