【问题标题】:Using Facebook OAuth 2.0 - How do I fetch the access token?使用 Facebook OAuth 2.0 - 如何获取访问令牌?
【发布时间】:2011-02-28 14:46:51
【问题描述】:

我是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,但我从未被重定向到我的页面。我做错了什么?

【问题讨论】:

  • PHP file_get_contents 是不是该走的路?

标签: javascript facebook oauth


【解决方案1】:

您需要在请求中添加&type=user_agent。您将获得带有哈希标记的 AuthToken,格式如下。

http://yourredirecturi#code=[accesstoken]

如果您将请求设置为&type=web_server,您将获得 AuthToken 作为查询字符串参数:@987654321@

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

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

【讨论】:

  • 谢谢阿米尔,帮了大忙!
  • 我很惊讶type 参数没有记录在official authentication help page 上。我花了几天时间,试图弄清楚如何处理在服务器端的 URI 片段中收到的访问令牌,如果不是你的答案,我会花更多的钱!非常感谢!
【解决方案2】:
$token = file_get_contents("the access token URL"); 

会给你访问令牌。

【讨论】:

  • -1 什么是访问令牌 url?可怕的答案,非常模糊。
【解决方案3】:

请随意尝试以下 PHP sn-p 来获取您的访问令牌:

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

谢谢,

【讨论】:

    猜你喜欢
    • 2015-05-05
    • 2011-04-28
    • 1970-01-01
    • 1970-01-01
    • 2013-04-09
    • 1970-01-01
    • 2012-12-10
    • 2023-01-23
    • 2019-09-10
    相关资源
    最近更新 更多