这是我想要的: 我使用了OAuth 2.0授权系统。 我已经在Facebook上注册了我的应用程序,并且我有我的应用程序密钥(我做了服务器端代码,但我需要更多用户友好的授权系统)。
根据Facebook的回复,如何在不重新加载页面的情况下从Facebook获取响应代码?如果你不明白我的意思,请看下一个例子:
示例在此链接上: http://www.badminton.si/1-turnir-b-kategorije-1-kolo-mbl
如何继续获取访问令牌,以便访问我的私人信息(如电子邮件)?
简称:
<script type="text/javascript" src="../Scripts/jquery-1.4.1-vsdoc.js"></script>
<script type="text/javascript" src="http://connect.facebook.net/en_US/all.js"></script>
<script type="text/javascript" src="http://static.ak.fbcdn.net/connect/en_US/core.debug.js"> </script>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">
FB.init({
appId: my_api_key,
status: true,
cookie: true,
xfbml: true
});
FB.Event.subscribe('auth.login', function (response) {login();)}
FB.Event.subscribe('auth.logout', function (response) {logout();});
FB.getLoginStatus(function (response) {if (response.session) {login();}});
function login() {FB.api('/me', function (response) {alert(response.email)});
....
<fb:login-button v="2" size="large" autologoutlink="true" perms="email,user_birthday,status_update,publish_stream,read_stream">
</fb:login-button>
答案 0 :(得分:1)
只需按照http://developers.facebook.com/docs/authentication/
上的示例操作即可在大多数函数中,您将获得回调,无需重新加载页面即可获取令牌。
来自文档:
FB.init({appId: 'your app id', status: true, cookie: true, xfbml: true});
FB.Event.subscribe('auth.sessionChange', function(response) {
if (response.session) {
// A user has logged in, and a new cookie has been saved
} else {
// The user has logged out, and the cookie has been cleared
}
});
使用response.session
对象,您无需重新加载页面即可获得所需的一切。