我一直在阅读有关某人网站的Facebook和Twitter登录信息。 使用这些服务之一的集成是可以的,但我的问题是如何为一个用户访问两个API。
示例:
用户已登录我的网站(活动会话)。现在他不得不让我在facebook和twitter上访问他的用户详细信息等。我怎么意识到这一点?我不希望他/她每次登录时都输入他的facebook或twitter凭证来获取他的访问令牌(oAuth)。 在使用我的网站登录后,如何获得自己的oAuth用户访问令牌,以便我可以与Facebook和Twitter的API进行交互。
这是对的吗?
非常感谢,如果你能帮助我的话。
答案 0 :(得分:0)
当有人登录Facebook帐户时,他们会一直登录,直到他们主动退出。
测试方法是:
FB.getLoginStatus(function(response){
if response.status === 'connected'{
// The user is logged in
var access_token = response.authResponse.accessToken;
// Do whatever you need to do
} else {
// Get the user to log in
}
});
请点击此处了解更多详情: https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/
Twitter的过程稍微复杂一些,但如果您只想显示推文,请考虑Web Intents。
否则,请按照下列步骤操作: https://dev.twitter.com/docs/auth/3-legged-authorization
两个平台都能够检查用户是否首先登录,因此您不必担心每次使用您的网站时都必须登录。但是,您不能在两个站点上使用相同的oAuth令牌 - 您必须为每个站点单独使用一个。
答案 1 :(得分:0)
每个单独的API都需要一个弹出窗口进行身份验证,它将重定向到适当的api进行授权,然后在授权重定向回弹出窗口后获得令牌。
然后,您将获得一个令牌,您可以将其传递回调用页面“window.opener”,并通过在主页上添加Javascript函数将该API的令牌存储在Javascript变量中。
window.opener.getInstagramData("self", oauth_token);
每个身份验证都需要有自己的令牌,并且需要是用户应该单击的按钮。
我正在使用此方法获取Facebook,Twitter,LinkedIn Foursquare和GooglePlus帐户信息。
希望这有帮助。