我想将网址发布为朋友墙的附件:
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,我应该怎么做才能解决这个问题?
我是否需要设置特殊权限才能对此邮件的发件人执行此操作?
答案 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更改的速度,我希望这些信息在您阅读时仍然准确(甚至可以准确开始)。