0

首先,我知道有很多与此主题相关的问题和答案。但是,它们都不适合我(可能是因为它们很旧并且方法已经过时,我不知道)...让我简要解释一下我的问题:

我一直在尝试使用 CocoonJS 的扩展权限登录 Facebook大约两个星期,但我完全无法做到……我可以使用基本权限成功登录,一切都按预期工作,但我无法弄清楚如何请求扩展权限...当使用可选参数调用 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', with scope, with 'perms'... 调用该选项,但结果没有任何改变。我在 CocoonJS 论坛上问过,我已经用谷歌搜索了两个星期,尝试了不同的解决方案,不同的 Facebook 帐户,甚至尝试硬编码 CocoonJS 的 FB 登录功能中的扩展参数(这会导致崩溃),但没有任何效果.. .

任何人都知道如何实现它?

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

4

1 回答 1

1

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

我建议您以这种方式请求扩展权限:

CocoonJS.Social.Facebook.requestAdditionalPermissions("publish", "publish_actions", function(response) {
  callback(response.error ? false : true);
});
于 2014-05-26T13:37:30.703 回答