如何从用户请求允许使用FB API访问权限授予其信息

问题描述 投票:-1回答:1

我有下面的代码允许用户注册使用Facebook的SDK API我们的应用程序。它运作良好,但我想要求用户授予我们的picture,birthday,address,email,gender,location和其他信息的许可。

window.fbAsyncInit = () => {
    //SDK loaded, initialize it
    FB.init({
        appId      : 'my-app-id',
        xfbml      : true,
        version    : 'v3.2'
    });

    //check user session and refresh it
    FB.getLoginStatus((response) => {
        if (response.status === 'connected') {
            //user is authorized
            document.getElementById('loginBtn').style.display = 'none';
            document.getElementById('logoutBtn').style.display = 'block';
            connectAPI(response);
        } else {

        }
    });
};

//add event listener to login button
document.getElementById('loginBtn').addEventListener('click', () => {
    //do the login
    FB.login((response) => {
        if (response.authResponse) {
            //user just authorized your app
            document.getElementById('loginBtn').style.display = 'none';

        }
    }, {
        scope: 'email', //===========change
        return_scopes: true,
        auth_type: 'rerequest'
    });
}, false);

document.getElementById('logoutBtn').addEventListener('click', () => {
    FB.logout((response) => {
        if(response.status === 'unknown'){
            document.getElementById('loginBtn').style.display = 'block';
            $('.btn-logout').hide();
        }
    });
}, false);

// Load the SDK asynchronously
(function(d, s, id) {
    var js, fjs = d.getElementsByTagName(s)[0];
    if (d.getElementById(id)) return;
    js = d.createElement(s); js.id = id;
    js.src = "https://connect.facebook.net/en_US/sdk.js";
    fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

//successful log in
function connectAPI(respo) {
    console.log(respo);
}

输出是这样的:

enter image description here

但我期待的输出是这样的:

photo from google https://www.google.com/url?sa=i&source=images&cd=&cad=rja&uact=8&ved=2ahUKEwjvpcWIj6bgAhXLQN4KHUCLAN0QjRx6BAgBEAU&url=https%3A%2F%2Fwww.studytutorial.in%2Fphp-facebook-login-and-integration-in-php-website-tutorial&psig=AOvVaw1FWjb0gj6NdviN0cqfzhsk&ust=1549508480183839

我试图改变这一行:

scope: 'email'

至:

scope: 'email,name,picture,birthday,address,email,gender,location',

但是蹦出窗口的显示是这样的:

enter image description here

我应该在哪里正确地插入我的范围参数?

javascript facebook-graph-api facebook-javascript-sdk
1个回答
0
投票

不存在所谓的“名”或“图片报”的权限,请阅读本:https://developers.facebook.com/docs/facebook-login/permissions

此外,没有address权限和location权限实际上是所谓user_location。同为birthdaygender。用正确的人试着请勿使用email两次:

scope: 'email,public_profile,user_birthday,user_gender,user_location'

别只创造权限,API参考告诉你究竟哪些存在;)

© www.soinside.com 2019 - 2024. All rights reserved.