我正在尝试使用应用程序和FB.api向用户墙发布消息。这是我的页面:
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="https://www.facebook.com/2008/fbml">
<head>
<title>My Feed Dialog Page</title>
</head>
<body>
<div id='fb-root'></div>
<script src='http://connect.facebook.net/en_US/all.js'></script>
<script>
FB.init(
{
appId: "MY_ID",
status: true,
cookie: true,
oauth : true
}
);
FB.login(function (response)
{
if (response.authResponse)
{
var body = 'Reading JS SDK documentation';
FB.api('/me/feed', 'post', { message: body }, function(response) {
if (!response || response.error) {
alert(response[0]);
alert('Error occured');
} else {
alert('Post ID: ' + response.id);
}
});
}
else
{
alert('User is logged out');
}
}, {publish_stream : true});
</script>
</body>
</html>
这失败了。使用chromes javascript debug我找到以下内容:
/**/ FB.ApiServer._callbacks.f1abfdaec({"error":{"message":"(#200) The user hasn't authorized the application to perform this action","type":"OAuthException"}});
如您所见,我向登录功能提供了publish_stream请求。还有什么我需要提供的吗?我在文档中找不到这个。
还有什么我在这里做错了吗?
谢谢!
答案 0 :(得分:2)
您正在定义权限错误。要使其工作,您需要更改
},{publish_stream:true});
进入
},{scope:'publish_stream'});
然后它应该工作:)