首页 > 解决方案 > Kinvey _socialIdentity 中使用 kinvey-nativescript-sdk 的 FB accessToken 太短

问题描述

我在我的 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 会返回:“error”:{ JS:“message”:“无效的 OAuth 访问令牌。”,JS:“type”:“OAuthException”,JS:“code”:190, JS:}

如果我使用 FB 开发人员工具生成的 accessToken 并将其硬编码到我的 NS 代码中,那么一切正常 - 我会收到所有请求的信息。

我发现的区别在于 accessToken 的长度:存储在 Kinvey 中的 accessToken 有 40 个字符,但 FB 工具生成的有 247 个字符。

有人可以解释为什么 Kinvey 的 _socialIdentity 中的 FB accessToken 很短/无法进一步使用,或者如何使用 kinvey-nativescript-sdk 获得有效的 accessToken?此外,如果有人使用 kinvey-nativescript-sdk 从 FB 帐户获取用户的联系电子邮件。

谢谢

标签: facebooknativescriptaccess-tokenkinvey

解决方案


您可以尝试添加client_token到 Mobile Identity Connect 服务配置的允许属性部分吗?

这将在kinveyAuth对象上创建一个新属性(包含在_socialIdentityUser 实体的属性中),它将保存您正在谈论的访问令牌。

你可以试试,如果它有效,请告诉我?

编辑:您也可以尝试添加idp_access_token到“允许的属性”部分。这将直接为kinveyAuth实体创建一个属性,该属性将包含所需的令牌。


推荐阅读