Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.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
使用Javascript JQuery对Facebook进行客户端授权_Facebook_Authorization - Fatal编程技术网

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

使用Javascript JQuery对Facebook进行客户端授权,facebook,authorization,Facebook,Authorization,以下是我想说的: 我使用了OAuth2.0授权系统。 我已经在Facebook上注册了我的应用程序,并且我已经获得了我的应用程序密钥(我做了服务器端代码,但我需要更多用户友好的授权系统) 基于Facebook的响应,我如何在不重新加载页面的情况下从Facebook获取响应代码?如果您不明白我的意思,请看下一个示例: 此链接上有一个示例: 我如何才能继续获取我的访问令牌,以便访问我的私人信息(如电子邮件) 简言之: <script type="text/javascript" src=".

以下是我想说的: 我使用了OAuth2.0授权系统。 我已经在Facebook上注册了我的应用程序,并且我已经获得了我的应用程序密钥(我做了服务器端代码,但我需要更多用户友好的授权系统)

基于Facebook的响应,我如何在不重新加载页面的情况下从Facebook获取响应代码?如果您不明白我的意思,请看下一个示例:

此链接上有一个示例:

我如何才能继续获取我的访问令牌,以便访问我的私人信息(如电子邮件)

简言之:

<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>

FB.init({
appId:my_api_密钥,
状态:正确,
曲奇:是的,
xfbml:对
});
订阅('auth.login',函数(响应){login();)}
订阅('auth.logout',函数(响应){logout();});
getLoginStatus(函数(响应){if(响应.session){login();}});
函数login(){FB.api('/me',函数(response){alert(response.email)});
....

只需按照上面的示例操作即可

在大多数函数中,您将获得回调,您可以捕获回调以获取令牌,而无需重新加载页面

从文件中:

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

请为我提供一个具体示例,说明如何在不重新加载页面的情况下获得重定向url(来自Facebook的答案)。不要在Facebook文档上重定向我。我已经阅读了它(我已经在服务器端意识到它)!@gregor:回调URL就是您设置的URL。我编辑了我的答案,其中包括如何检查用户是否单击了登录按钮或您还需要的任何其他登录解决方案:别忘了fb:login button v=“2”size=“large”autologutlink=“true”perms=“电子邮件、用户生日、状态更新、发布流、阅读流”>