CocoonJS和Facebook扩展了权限



首先,我知道有很多关于这个话题的问题和答案。然而,他们都不适合我(也许是因为他们老了,方法已经过时了,我不知道)…让我简单解释一下我的问题:

我一直试图登录到Facebook与扩展权限CocoonJS大约两周,我完全无法做到这一点…我可以成功登录基本权限和一切工作如预期,但我不知道如何请求扩展权限…当使用可选参数调用Cocoon的FB登录时,只请求基本权限,因此实际上似乎Cocoon(或FB)忽略了扩展请求:

var socialService = CocoonJS.Social.Facebook.getSocialInterface();
socialService.login(function(loggedIn, error) {
    if (error) {
        console.error("login error: " + error.message);
    }else if (loggedIn){
    console.log("login suceeded");
    CocoonJS.Social.Facebook.getLoginStatus(function(response) {
    if (response.status === 'connected')
        CocoonJS.Social.Facebook.api("/me/permissions",
            function (response) {
                if (response && !response.error) {
                    console.log("Granted perms.: "+JSON.stringify(response));
                }else{
                    console.log("ERROR: unable to retrieve permissions");
                }
            }
        );
    }
    });
}, { 'scope': 'user_photos,publish_actions',return_scopes: true });

问题是,登录功能似乎工作正常,打印了"登录成功"日志,也打印了"授予权限"日志。然而,它只显示了基本的权限,完全忽略了'user_photos'和'publish_actions'的权限(他们甚至没有出现在检索列表中…

我试着用'scope', scope, 'perms'呼叫选项…但没有什么能改变结果。我在CocoonJS论坛上问过,我已经在谷歌上搜索了两个星期,尝试了不同的解决方案,不同的Facebook帐户,甚至尝试在CocoonJS的FB登录功能(导致崩溃)中硬编码扩展参数,但没有任何效果…

有人知道怎么实现吗?

提前感谢您的时间和精力!

CocoonJS将'scope'参数解析为带有逗号分隔值的字符串。但是这些权限值用于只读会话登录。Facebook已经弃用"publish_actions"权限登录,并建议应用程序应该在登录时请求最低限度的读取权限,然后在用户实际需要时请求任何额外或发布权限。

我建议你这样请求扩展权限:

CocoonJS.Social.Facebook.requestAdditionalPermissions("publish", "publish_actions", function(response) {
  callback(response.error ? false : true);
});

最新更新