Javascript Nativescript{N}oAuth插件-检索用户Facebook数据 上下文

Javascript Nativescript{N}oAuth插件-检索用户Facebook数据 上下文,javascript,android,facebook,oauth,nativescript,Javascript,Android,Facebook,Oauth,Nativescript,我正在尝试使用JavaScript创建一个Android应用程序。在第一页,它要求用户连接Facebook,我打算验证是否存在一个带有他们电子邮件地址的帐户 工具 我正在使用nativescript oauth包来处理到Facebook的oauth连接。我通过命令行在Windows10机器上工作 代码 app.js start.js 出了什么问题 上述结果如下: JS: Facebook Connect button tapped ... JS: logged in JS: FB Auth to

我正在尝试使用JavaScript创建一个Android应用程序。在第一页,它要求用户连接Facebook,我打算验证是否存在一个带有他们电子邮件地址的帐户

工具 我正在使用
nativescript oauth
包来处理到Facebook的oauth连接。我通过命令行在Windows10机器上工作

代码 app.js

start.js

出了什么问题 上述结果如下:

JS: Facebook Connect button tapped
...
JS: logged in
JS: FB Auth token: EAAC50oamJosBAF1F3lrGAOntENgSAZA40w4iE3rNOLP1W_REDACTED_Cb7yS9ZB1Ro4qhLroOMwZD
JS: {"instance":{"tokenResult":{"accessToken":"EAAC50oamJosBAF1F3lrGAOntENgSAZA40w4iE3rNOLP1W_REDACTED_Cb7yS9ZB1Ro4qhLroOMwZD","accessTokenExpiration":"2017-03-24T18:27:04.176Z","refreshTokenExpiration":"2017-03-24T18:27:04.176Z"},"credentials":{"authority":"https://www.facebook.com/dialog","tokenEndpointBase":"https://graph.facebook.com","authorizeEndpoint":"/oauth","tokenEndpoint":"/v2.3/oauth/access_token","clientId":"REDACTED","clientSecret":"REDACTED","redirectUri":"https://www.facebook.com/connect/login_success.html","scope":"email"}}}
JS: Application started successfully
正如你所看到的,我成功地授权了Facebook应用程序,并检索了一个有效的访问密钥,可以解析返回的对象——不过我正在尝试检索用户的电子邮件地址。我可以看到“电子邮件”在范围内

问题: 如何使用
nativescript oauth
插件或上述对象中的数据来检索用户的电子邮件地址(如
范围中定义的)

资源

您必须更改范围以获取更多详细信息(添加“用户朋友”以获取他们的朋友列表,添加“公共配置文件”以获取配置文件信息)


最后,在facebook开发者页面的“应用审查”部分,确保这些范围字段处于活动状态并显示出来(它们旁边有一个绿点,上面有数据说明)。如果上述代码不起作用,您可能需要使应用程序处于活动状态/开始提交以首先获得批准

您必须更改范围以获取更多详细信息(添加“用户朋友”以获取其朋友列表,添加“公共配置文件”以获取配置文件信息)


最后,在facebook开发者页面的“应用审查”部分,确保这些范围字段处于活动状态并显示出来(它们旁边有一个绿点,上面有数据说明)。如果上述代码不起作用,您可能需要使应用程序处于活动状态/开始提交以首先获得批准

你调用
/me?fields=email
获取用户的电子邮件你调用
/me?fields=email
获取用户的电子邮件
//...
var tnsOAuthModule = require("nativescript-oauth");
//...

exports.fbConnect = function(){
    console.log("Facebook Connect button tapped");

    tnsOAuthModule.login()
        .then(()=>{
            console.log('logged in');
            var token = tnsOAuthModule.accessToken();
            console.log("FB Auth token: " + token);
            console.log(JSON.stringify(tnsOAuthModule));
        })
        .catch((er)=>{
            console.log(er);
        });

    console.log("Login sucessful");
}
JS: Facebook Connect button tapped
...
JS: logged in
JS: FB Auth token: EAAC50oamJosBAF1F3lrGAOntENgSAZA40w4iE3rNOLP1W_REDACTED_Cb7yS9ZB1Ro4qhLroOMwZD
JS: {"instance":{"tokenResult":{"accessToken":"EAAC50oamJosBAF1F3lrGAOntENgSAZA40w4iE3rNOLP1W_REDACTED_Cb7yS9ZB1Ro4qhLroOMwZD","accessTokenExpiration":"2017-03-24T18:27:04.176Z","refreshTokenExpiration":"2017-03-24T18:27:04.176Z"},"credentials":{"authority":"https://www.facebook.com/dialog","tokenEndpointBase":"https://graph.facebook.com","authorizeEndpoint":"/oauth","tokenEndpoint":"/v2.3/oauth/access_token","clientId":"REDACTED","clientSecret":"REDACTED","redirectUri":"https://www.facebook.com/connect/login_success.html","scope":"email"}}}
JS: Application started successfully
var facebookInitOptions = TnsOAuthOptionsFacebook = {
    clientId: 'REDACTED',
    clientSecret: 'REDACTED',
    scope: ['email', 'user_friends', 'public_profile']
};