我正在尝试设置我的应用,因此用户可以登录到Facebook,然后我可以为他们上传帖子,简单。
我有这段代码
// let the user login
FB.login(function(response) {
if (response.authResponse) {
alert(JSON.stringify(response.authResponse));
// post to facebook
// create our facebook data object
var data = {
access_token: response.authResponse.accessToken,
message: "Upload this post to facebook"
};
// success, now upload the rest of the post, text etc
FB.api('/me/feed', 'post', data, function(response) {
if (!response || response.error) {
alert("There was an error uploading your post to facebook: " + response
.error.message);
} else {
alert("error: " + JSON.stringify(response));
}
});
} else {
alert(
'There was an error logging you in to facebook, or you did not authorize the app to post on your wall'
);
}
}, {
scope: 'publish_stream'
});
由于这是一个cordova应用程序,我在我的设备就绪事件中有这个
// initialize facebook
FB.init({
appId: "123456789", // facebook appId
nativeInterface: CDV.FB,
useCachedDialogs: false
});
现在你可以看到,我要求获得许可" publish_stream"我认为这是正确的,但我在试图发帖时不断收到消息,说
There was an error uploading your post to facebook (#200). The user hasn't authorizard the application to perform this request
我很清楚。
我在近一年前创建的另一个应用程序上有这个,这一切似乎都运行良好。
我读到的一件事是" publish_stream"或" publish_actions"现在登录时无法使用,除非您提交应用以供审核?这是仅适用于创建的新应用程序,因为我没有使用我的其他应用程序,但它似乎工作。此应用程序在您登录后也会显示一条消息,如下所示。我相信我的其他应用程序不会显示此
编辑: 我检查了我的其他应用程序,它没有显示上述消息。这是截图
任何帮助都会被贬低。
答案 0 :(得分:1)
publish_stream
已弃用,请使用publish_actions
顺便说一句,您不能预先填写消息参数,它必须始终是100%用户生成的。并且在登录(或永远)之后不要“autopost”。这也是违反规则的。有关详细信息,请查看平台政策:https://developers.facebook.com/policy/