Facebook 使用GitKit进行身份验证后获取使用同一应用程序的好友列表
当使用同一个应用程序使用Google Identity Toolkit进行身份验证时,获取好友列表(服务器端)的预期方式是什么 通过Facebook graph API,可以获取好友列表:Facebook 使用GitKit进行身份验证后获取使用同一应用程序的好友列表,facebook,facebook-graph-api,google-plus,google-identity-toolkit,Facebook,Facebook Graph Api,Google Plus,Google Identity Toolkit,当使用同一个应用程序使用Google Identity Toolkit进行身份验证时,获取好友列表(服务器端)的预期方式是什么 通过Facebook graph API,可以获取好友列表: 需要一个访问令牌 需要用户\u朋友的权限 我可以从GitKit获得访问令牌吗 或者需要在客户端使用Facebook Graph Api进行第二次登录 使用GitKit登录时不要求用户\u friends权限 有没有办法扩展登录权限 当我尝试使用相同的应用程序获取google+好友时,可能会出现类似
- 需要一个访问令牌
- 需要用户\u朋友的权限
- 或者需要在客户端使用Facebook Graph Api进行第二次登录
- 有没有办法扩展登录权限
不使用任何社交“功能”的社交登录对我来说没有意义,我希望有一种方法可以通过Gitkit实现这一点。要在Android上为Identity Toolkit登录添加额外权限,请将Identity Toolkit.extra_scopes元数据添加到清单中。它看起来像:
<meta-data
android:name="identitytoolkit.extra_scopes"
android:value="Google: g_scope1; Facebook: f_scope1 f_scope2; Yahoo: y_scope1"/>
登录完成后,Facebook SDK将使用正确的令牌进行初始化,因此您可以通过AccessToken.getCurrentAccessToken()检索访问令牌。因为Facebook令牌是可用的,所以您可以将从应用程序检索到的令牌发送到后端,并与graph API一起使用 对于Javascipt解决方案,我现在编辑了gitkit.js以支持OAuth作用域,如gitkit v2中的作用域: 示例配置:
idpConfig: {
facebook: {
scopes: [
"public_profile",
"user_friends",
"email"
]
},
google: {
scopes: [
"https://www.googleapis.com/auth/userinfo.email+https://www.googleapis.com/auth/plus.login"
]
}
}
不需要Google+范围,因为它是默认范围。仅使用google+和facebook登录进行测试
idpConfig子项的名称必须在IDPs身份验证url的前45个字符中才能工作。您能确认这在Gitkit的v3版本上工作吗?因为在Javascript中,v2中的作用域代码不再适用于我:也许我可以通过服务器端的verifyAssertion获得访问令牌。我将实现这个方法并测试它。我认为范围代码目前不适用于Javascript,但应该适用于Android。verifyAssertion用于验证OAuth令牌——它不会简单地将一个令牌返回给您“:在用户批准并且回调收到来自IdP的响应后,您可以调用verifyAssertion API,参数returnOauthToken设置为true。这将在verifyAssertion API调用的响应中返回访问令牌oauthAccessToken和过期时间oauthExpireIn。“我现在编辑了gitkit.js,以支持gitkit v2中的OAuth范围:github.com/Hollerweger/gitkit-Javascipt-Enhancements