【问题标题】:Creating facebook app request along with permission创建 facebook 应用程序请求以及权限
【发布时间】:2012-06-01 15:37:51
【问题描述】:

我正在使用它通过我的应用向用户发送邀请给他的朋友,并在他们阅读我的应用上的新闻时请求公开操作的许可:

function xlfb_friendInvite() {
    FB.ui({method: 'apprequests',
        message: 'great app http://apps.facebook.com/xaluancom enjoin w me..',
    },
    function(receiverUserIds) {
        console.log("IDS : " + receiverUserIds.request_ids);
    });
    //http://developers.facebook.com/docs/reference/dialogs/requests/
}

但后来我发现请求没有得到外部许可。被邀请时,用户收到通知并接受,但没有权限,因此应用程序无法运行。

【问题讨论】:

    标签: javascript facebook user-permissions


    【解决方案1】:

    当用户接受发送给他的请求时,他们会被重定向到您应用程序的画布 URL。您的应用程序有责任检查该用户是否已对您的应用程序进行身份验证,以及他们是否已授予您的应用程序正确的权限。

    您需要做的是检查登陆您的画布 URL 的用户是否已通过身份验证。通常人们会在身份验证过程中请求权限,但这不是必需的。

    您可以像这样测试权限 -

    FB.api('/me/permissions', function (response) {
        console.log(response);
    });
    

    如果用户没有授予所有必需的权限,那么您可以简单地通过权限对话框提示他们 -

    FB.ui({
        method: 'permissions.request',
        perms: 'user_likes',
        display: 'popup'
        },function(response) {
            if (response && response.perms) {
                alert('Permissions granted');
            } else if (!response.perms){
                alert('User did not authorize permission(s).');
            }
    });
    

    如果您想在登录过程中简单地对用户进行身份验证并请求权限,那么您可以使用与此类似的一些代码 -

    FB.login(function(response) {
      // handle the response
    }, {scope: 'email,user_likes'});
    

    【讨论】:

    • 谢谢。实际上我现在正在做..但是有几个时间过程,一个邀请,一个权限..,这可能会惹恼其他没有邀请但已经授权应用程序获得其他权限的用户,他们可能不想要这个。我正在考虑使用:redirect_uri .. 并再次将用户重定向到 facebook 画布权限页面:facebook.com/dialog/permissions.request?app_id='+appID+'&display=page&next=http%3A%2F%2Fapps。 facebook.com%2Fxaluancom%2F&response_type=code&perms=publish_actions&canvas=1 但测试不起作用..我错过了一些东西吗?
    【解决方案2】:

    最后我找到了一个简单的解决方案。在我的 Facebook 应用中心转到 Settings > Auth Dialogue,然后点击“edit these permissions”,然后输入“public_stream, email”。

    每次用户收到来自应用的邀请时,他们都会在授权应用时看到请求权限的窗口。

    我还注意到该设置目前不支持“public_actions”。可能是 Facebook 团队忘记在此处设置选项。

    反正public_actions被public_stream覆盖,所以我一点也不糊涂。

    感谢 Facebook 的 Open graph 团队。

    【讨论】:

    • publish_actions 可用于经过身份验证的推荐 - 您只需正确拼写...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-30
    • 2019-12-31
    • 2013-08-11
    相关资源
    最近更新 更多