Titanium:Facebook API:(#200)需要扩展许可:publish_actions

Titanium: Facebook API: (#200) Requires extended permission: publish_actions

遵循文档中的标准示例,但它不起作用。

有趣的是,如果我执行 Ti.API.info(fb.getPermissions()),则会列出发布操作。

这是该行的输出:

[INFO] :   permissions=
[INFO] :   publish_actions,status_update,publish_stream,read_stream,manage_pages

代码:

var fb = require('facebook');
fb.appid = '1234567';
fb.permissions = ['publish_actions', 'status_update', 'publish_stream', 'read_stream','manage_pages']; // Permissions your app needs
fb.authorize();

fb.forceDialogAuth = true;

var data = {
    caption: 'This is a test',
    picture: blob
};

fb.requestWithGraphPath('me/photos', data, 'POST', function(e){
    if (e.success) {
        alert("Publish is ok");

    } else {
        if (e.error) {
            alert(e.error);
        } else {
            alert("Unkown result");
        }
    }
});

publish_stream 多年来一直被弃用,如果您仍然使用 publish_actions 则完全没有意义。

也就是说,错误消息意味着授权过程不成功。如果您尝试作为 Facebook 应用程序的管理员,您应该在授权后调试您的访问令牌,并确保在此过程中要求您提供权限。

如果您没有尝试使用应用程序的 Admin/Developer/Tester,这很可能是因为权限需要先在登录审核中获得批准:https://developers.facebook.com/docs/facebook-login/review