Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Facebook 使用GitKit进行身份验证后获取使用同一应用程序的好友列表_Facebook_Facebook Graph Api_Google Plus_Google Identity Toolkit - Fatal编程技术网

Facebook 使用GitKit进行身份验证后获取使用同一应用程序的好友列表

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+好友时,可能会出现类似

当使用同一个应用程序使用Google Identity Toolkit进行身份验证时,获取好友列表(服务器端)的预期方式是什么

通过Facebook graph API,可以获取好友列表:

  • 需要一个访问令牌
  • 需要用户\u朋友的权限
我可以从GitKit获得访问令牌吗

  • 或者需要在客户端使用Facebook Graph Api进行第二次登录
使用GitKit登录时不要求用户\u friends权限

  • 有没有办法扩展登录权限
当我尝试使用相同的应用程序获取google+好友时,可能会出现类似的问题


不使用任何社交“功能”的社交登录对我来说没有意义,我希望有一种方法可以通过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