facebook - 用户在 Facebook Auth Dialogue Javascript SDK 中跳过权限

标签 facebook facebook-graph-api facebook-javascript-sdk facebook-authentication

我在使用 facebook javascript sdk 的页面选项卡中有一个应用程序。当新用户使用该应用程序时,我会看到预期的“使用 facebook 登录”弹出窗口。我也有一些扩展权限,我在 FB.Login 的范围参数中添加了这些权限。用户使用 facebook 登录后,我看到了预期的扩展权限弹出窗口。唯一的问题是如果用户跳过扩展权限,对话会返回一个 access_token,但它对扩展权限无效。下面的代码示例。

window.fbAsyncInit = function () {
    FB.Canvas.setAutoGrow();
    FB.init({
        appId: facebookAppId, 
        status: true, // check login status
    });

    function updateFBInfo(response) {
        console.log('updateResp:');
        if (response.authResponse) {
            //user is already logged in and connected
            FB.api('/me', function (info) {
                displayUserInfo(info, response);
            });
        }
        else {
            FB.login(function (loginResponse) {
                if (loginResponse.authResponse) {
                    FB.api('/me', function (info) {
                        displayUserInfo(info, loginResponse);
                    });
                }
            }, { scope: 'email,manage_pages,offline_access,publish_stream' });
        }
    }

    FB.getLoginStatus(updateFBInfo);
};

我想我的问题是,我错过了什么(这一定很简单),或者有没有办法检查返回的 acces_token 是否真的有效?

最佳答案

在继续之前,您需要明确检查权限。如果他们没有提供必要的权限,您需要再次显示具有必要范围的 FB.login()

这是检查权限的代码:

FB.api('/me/permissions', function (response) {
            var perms = response.data[0];
            // Check for publish_stream permission in this case....
            if (perms.publish_stream) {                
                // User has permission
            } else {                
                // User DOESN'T have permission. Perhaps ask for them again with FB.login?
            }                                            
    } );

关于facebook - 用户在 Facebook Auth Dialogue Javascript SDK 中跳过权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10337295/

相关文章:

java - 执行 facebook Graph API 请求时出现 android.os.NetworkOnMainThreadException

json - 如何使用 'wp_insert_user' 登录 Facebook?

php - Facebook 身份验证实现

javascript - 如何使用 Metro 应用程序 (Windows 8) 在 Facebook 用户的墙上发帖?

ios - 如何在应用程序中获取 Twitter 和 Facebook 图标

php - 请求 stream_tag 表

html - Facebook 抓取缓存不刷新

ios - Facebook iOS SDK 分享对话框 - 在 friend 的墙上分享

android - 使用不同布局的 Facebook 登录

php - 检查是否仍安装了页面选项卡应用程序