Facebook 权限对话框 (JavaScript sdk)

Posted

技术标签:

【中文标题】Facebook 权限对话框 (JavaScript sdk)【英文标题】:Facebook permission dialog (JavaScript sdk) 【发布时间】:2011-10-21 07:15:59 【问题描述】:

我正在使用 OAuth 对话框获取 Facebook 访问用户电子邮件、生日和其他详细信息的权限,但是当我运行此应用程序 URL 时,https://apps.facebook.com/projectatestapp/(登录到 Facebook 时)我看到此登录到应用程序窗口,上面写着:

您正在以 Nina Sewart 的身份登录 testapp。登录不会将此应用的活动添加到 Facebook。

带有登录和取消按钮instead of Permission window with Allow and Don't Allow button

这是我的代码

<html xmlns:fb="https://www.facebook.com/2008/fbml">
<body>
    <script src="http://connect.facebook.net/en_US/all.js"></script>
    <div id="fb-root"></div>
    <script>
        FB.init( 
            appId: '[My app id]', 
            xfbml: true, 
            cookie: true,
            oauth: true
        );

        FB.login(
            scope: 'email,user_birthday',
        );
    </script>

    <a href="https://www.facebook.com/dialog/oauth/?scope=email,
        user_birthday&
        client_id=148244388606048&
        redirect_uri=https://apps.facebook.com/projectatestapp/test2.html&
        response_type=token" target="_top">test</a>
</body>
</html>

请告诉我其中有什么问题?

【问题讨论】:

【参考方案1】:

您没有看到它的原因是因为申请过程已成为一个两步过程。

    该人接受登录您的应用程序。 作为人接受您的扩展权限,这就是回调 url 发挥作用的地方。

可以在here 找到文档。

所以你的回调没有被调用的原因是因为两步过程。我建议将响应附加到被调用的第二页。

我不确定 JS SDK 是如何工作的,但这是我设法做到的。

祝你好运。

【讨论】:

【参考方案2】:

您需要在调用自动​​化窗口之前将 fb 令牌添加到 url 以向 fb 识别您的用户。

我想试试这个来获取令牌:FB.getAccessToken();

【讨论】:

通过使用 response.authResponse.accessToken;允许/不允许窗口不再存在.. 我看到的是:当我点击 url 时,我看到一个新窗口说 Nida testapp 需要:您的电子邮件地址 (nidaalikhawaja@hotmail.com) 您的生日登录不会将此应用的活动添加到 Facebook。 连同登录和取消按钮... Facebook 是否有可能将允许和不允许窗口更改为此? 我也有同样的问题:facebook.***.com/questions/7847029/…【参考方案3】:

我在这里也有同样的问题。文档说只有该应用程序的开发人员/测试人员才能获得发布权限,但我可以设法使其仅与用于创建应用程序的 id 一起工作。其他测试用户(即使是授权开发人员)无法通过“添加到时间线”阶段。

这可能是一个重大错误。

【讨论】:

【参考方案4】:

我为这个问题苦苦挣扎了几个小时,我可爱的同事刚刚帮我解决了这个问题。确保在调用 login 后不刷新页面。基本上,不要做下面这样的事情:

FB.login(...);
window.location.refresh();

在 FB.login 的回调中包含刷新代码!

伙计,我觉得自己很愚蠢,但有时你会感到困惑,忘记了回调在代码执行顺序方面是如何工作的。

【讨论】:

以上是关于Facebook 权限对话框 (JavaScript sdk)的主要内容,如果未能解决你的问题,请参考以下文章

Facebook 权限对话框 (JavaScript sdk)

Facebook - 如何使用 iframe 应用直接进入请求权限对话框?

以不同语言显示的 Facebook 权限对话框

IOS如何获取Facebook扩展权限对话框

Facebook iOS 原生应用中的权限对话框

Facebook SDK v3.5.2 - 从关闭的会话中请求权限