使用Facebook OAuth 2.0 - 如何获取访问令牌?

时间:2010-06-07 09:15:11

标签: javascript facebook oauth

我是OAuth的新手,我正在尝试将Facebook Connect用于我的网络应用程序。

我已成功获得验证令牌,但我的问题是“获取”访问令牌。我该如何获取它? Facebook文档告诉我用这个URL获取访问令牌:

https://graph.facebook.com/oauth/access_token?'
                + 'client_id=XXXXXXXXXXXX& redirect_uri=http://www.mysite.com/fbconn/index.html&display=touch&'
                + 'client_secret=axxxxxcxxxxxxxxxxx&code=' + code;

当我使用它时,我在空白页面上看到访问令牌,但我想用JavaScript(Ajax),PHP或其他东西来获取它。这可能吗?我认为访问令牌将附加到我的重定向URI,如验证代码,但我从未被重定向到我的页面。我做错了什么?

3 个答案:

答案 0 :(得分:6)

您需要在请求中添加&type=user_agent。您将使用以下格式的哈希标记获取AuthToken。

http://yourredirecturi#code=[accesstoken]

如果您将请求设置为&type=web_server,则会将AuthToken作为查询字符串参数:http://yourredirecturi&code=[accesstoken]

以下是如何实施Facebook的OAuth协议的完整说明。代码示例在ASP.NET MVC中,但它应该能够很好地翻译成任何语言:

<强> Facebook Platform's OAuth 2.0 Protocol and ASP.NET MVC

答案 1 :(得分:2)

您可以尝试使用以下PHP代码段来获取访问令牌:

//Fill in the parts in caps with your app details
$token_url = "https://graph.facebook.com/oauth/access_token?client_id=YOUR_APP_ID&redirect_uri=YOUR_URL&client_secret=YOUR_APP_SECRET&code=THE_CODE_YOU_GOT_FROM_THE_SERVER";

$token=file_get_contents($token_url); //Fetching the token from the URL

echo $token; //This is your access token

谢谢,

答案 2 :(得分:-5)

$token = file_get_contents("the access token URL"); 

会为您提供访问令牌。