使用Facebook流发布

时间:2011-05-01 06:44:05

标签: facebook facebook-javascript-sdk

我想将网址发布为朋友墙的附件:

var attachment={'name':'favor','href':'http://128.196.239.71/movie.php?mid=<?php echo  $_GET['mid']; ?>'};
                                         Facebook.streamPublish('',attachment,null,friends[i],comment,callback);

执行上述操作会给我一个未定义的Facebook,我应该怎么做才能解决这个问题?

我是否需要设置特殊权限才能对此邮件的发件人执行此操作?

1 个答案:

答案 0 :(得分:2)

您确实需要stream.publish权限才能使用stream.publish方法或等效的图API调用。

您可以检查用户是否已使用以下内容授予此权限:

FB.getLoginStatus(function(response) { if (response.perms) { /* check perms */ } })

您可以通过以下方式申请许可:

FB.login(function(response) { /* check perms */ }, {scope: 'publish_stream'})

然后在回复中你可以检查它是否真的被授予,那么你应该能够进行流发布调用。

但是,我不认识你的电话“Facebook.streamPublish”的格式。我认为新API要求您进行更像

的呼叫
FB.api({method: 'stream.publish', message: 'hello'}, function(response) {})

除此之外,您还可以使用对话框API创建帖子并将其展示给用户,让他们批准或不批准。这不需要stream.publish权限。像这样的东西(FB.ui API文档中给出的例子):

 FB.ui(
   {
     method: 'feed',
     name: 'Facebook Dialogs',
     link: 'http://developers.facebook.com/docs/reference/dialogs/',
     picture: 'http://fbrell.com/f8.jpg',
     caption: 'Reference Documentation',
     description: 'Dialogs provide a simple, consistent interface for applications to interface with users.',
     message: 'Facebook Dialogs are easy!'
   },
   function(response) {
     if (response && response.post_id) {
       alert('Post was published.');
     } else {
       alert('Post was not published.');
     }
   }
 );

按照Facebook更改的速度,我希望这些信息在您阅读时仍然准确(甚至可以准确开始)。