在 facebook 应用程序中获取访问令牌时,redirect_uri 应该是啥?

Posted

技术标签:

【中文标题】在 facebook 应用程序中获取访问令牌时,redirect_uri 应该是啥?【英文标题】:What is supposed to be the redirect_uri when getting access token in facebook app?在 facebook 应用程序中获取访问令牌时,redirect_uri 应该是什么? 【发布时间】:2011-12-11 11:09:03 【问题描述】:
$token_url = "https://graph.facebook.com/oauth/access_token?client_id="
    . $app_id . "&redirect_uri=" . urlencode($my_url) 
    . "&client_secret=" . $app_secret 
    . "&code=" . $code;

redirect_uri 应该是什么? 我试过用这个

'https://graph.facebook.com/oauth/authorize?client_id='.$app_id.'&
redirect_uri='.urlencode($canvas_page).'&scope=email,read_stream,publish_stream';

但它返回了这个错误


   "error": 
      "message": "Error validating verification code.",
      "type": "OAuthException"
   

需要帮助, 提前致谢。

【问题讨论】:

我也尝试过使用apps.facebook.com/myapp,但同样的错误 nvm,已解决,redirect_uri必须和authorize 1中的一样 【参考方案1】:

首先我会回答你的重定向网址应该是什么

转到您的 Facebook 应用程序仪表板

https://developers.facebook.com/apps

从页面左侧的手风琴菜单中选择您的应用程序。

Canvas URL 有一个值(这里是 'http://localhost:7124' 指向本地服务器。)

重定向网址必须是此网址(站点)中的网址。 ie 类似 'http://localhost:7124/home.aspx' 或 'http://localhost:7124/main/home.aspx'


要获取访问令牌,请按照以下步骤操作

发出请求
https://www.facebook.com/dialog/oauth?client_id=CLIENT_ID&redirect_uri=REDIRECT_URL&scope=read_stream

这将为您提供一个用户验证码 (CODE),以表明用户已登录。

然后使用此代码向

发出请求
https://graph.facebook.com/oauth/access_token?client_id=CLIENT_ID&redirect_uri=REDIRECT_URL&client_secret=APP_SECRET&code=CODE

它将以 access_token=ACCESSTOKEN 格式为您提供您指定的重定向 URL 的访问令牌。

注意: 重定向 URL 必须是 Facebook 应用程序的 Canvas Url 内的路径,并且这些请求应从 Canvas Url 指向的同一域提交 p>

【讨论】:

嗨 Robin,拿到 access_token 后该怎么办?我正在使用 asp.net MVC 3.0。重点是,'我坐在不同的域(graph.facebook.com)不是我的,那么我该如何利用它?' 我正在实现 oAuth 服务器。我停留在我必须关闭对话并将客户端发送到重定向 URI 的点上。任何帮助将不胜感激。 如果我在 URL 上有一个 facebook 登录按钮 - localhost:8080/login 并且当用户单击 FB 登录按钮并授权时,我希望他们登陆 localhost:8080/home 的主页。在这种情况下,在 FB 上创建应用程序时,哪个 URL 应该进入站点 URL 字段。

以上是关于在 facebook 应用程序中获取访问令牌时,redirect_uri 应该是啥?的主要内容,如果未能解决你的问题,请参考以下文章

从授权中获取 facebook 令牌访问权限

在 AWS Cognito 和 Lambda 中获取 Facebook 访问令牌

iOS:通过自动登录获取 Facebook 访问令牌

在 ASP.Net MVC 应用程序中从 Facebook SDK for .Net 获取 Facebook 用户访问令牌

使用 php sdk 在 facebook 中获取访问令牌时出错

获取 facebook 好友访问令牌错误?