使用Javascript JQuery对Facebook进行客户端授权

时间:2010-11-29 11:03:21

标签: facebook authorization

这是我想要的: 我使用了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>

1 个答案:

答案 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对象,您无需重新加载页面即可获得所需的一切。