【发布时间】:2019-06-09 11:19:35
【问题描述】:
我在我的 NativeScript 应用程序中使用 Kinvey MIC 使用 Facebook 登录过程。我能够登录到 Kinvey 并且成功创建了 _socialIdentity 记录。由于我还需要知道用户在 FB 帐户中注册的电子邮件(这不是在 FB 的基本用户响应中发送的),我需要为此查询 FB Graph API。
https://graph.facebook.com/v3.2/me?fields=id,name,email&access_token= + accessToken
如果我使用存储在 Kinvey 的 _socialIdentity 中的 accessToken,FB 会返回: “错误”: { JS: "message": "无效的 OAuth 访问令牌。", JS:“类型”:“OAuthException”, JS:“代码”:190, JS:}
如果我使用 FB 开发人员工具生成的 accessToken 并将其硬编码到我的 NS 代码中,一切正常 - 我会收到所有请求的信息。
我发现的差异是 accessToken 的长度: Kinvey存储的accessToken有40个字符,而FB工具生成的有247个字符。
有人可以解释为什么 Kinvey 的 _socialIdentity 中的 FB accessToken 很短/无法进一步使用,或者如何使用 kinvey-nativescript-sdk 获取有效的 accessToken? 此外,如果有人使用 kinvey-nativescript-sdk 从 FB 帐户获取用户的联系电子邮件。
谢谢
【问题讨论】:
-
你能告诉我们一些代码,你是如何检索 FB 令牌的吗?
-
accessToken = response.data._socialIdentity.kinveyAuth.idp_access_token; http.getJSON( "graph.facebook.com/v3.2/…" + accessToken ) .then(res => { console.log(res); }) .catch(function(error) { console.log(error); });
-
现在工作正常,因为 Bilger 建议在 Kinvey MIC 设置中添加额外的允许属性。
标签: facebook nativescript access-token kinvey