我正在开发一款Facebook应用。我有一个服务器端OAuth流程,它允许我验证用户,而无需他点击任何按钮。因此,我可以检索他的accessToken,只要其他信息在服务器端上使用它们,然后再生成页面。
在我的应用程序中,我现在需要使用Javascript API,它可以在技术上共享相同的 Oauth令牌。
是否可以使用给定的Oauth令牌实例化FB javascript对象?
我知道可以做相反的意思,即在客户端执行Oauth进程并通过cookie与服务器端共享Oauth密钥,但我认为这有两个缺点: _首先,它意味着有这个“登录”按钮,这对我来说不是一个Facebook应用程序的良好用户体验。 _此外,如果我的应用程序由两个不同的页面组成,我不知道这个Oauth进程应该如何表现。从一个页面转到另一个页面完全重新加载javascript。这个Oauth流程(弹出窗口等)是否会在每个页面上重新加载?
感谢您的帮助!
答案 0 :(得分:9)
我有一个类似的问题,Facebook有一个名为FB.getLoginStatus的旧方法,您可以使用它来检查用户是否在没有弹出窗口的情况下给予了权限 -
FB.init({appId: 'XXXXXXXXXXXXXX', xfbml: true, cookie: true, oauth: true});
FB.getLoginStatus(function(response) {
if (response.authResponse) {
token = response.authResponse.accessToken;
FB.api('/me', function(response) {
console.log(response);
// do something here they are logged in and have given you perms
});
} else {
// no user session available, someone you dont know
}
});
希望有所帮助!