Javascript Nativescript{N}oAuth插件-检索用户Facebook数据 上下文
我正在尝试使用JavaScript创建一个Android应用程序。在第一页,它要求用户连接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
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']
};