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

时间:2011-10-20 03:35:24

标签: facebook oauth access-token facebook-oauth

$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"
   }
}

需要帮助, 提前谢谢。

1 个答案:

答案 0 :(得分:16)

首先,我将回答您的重定向网址

转到您的Facebook应用程序信息中心

https://developers.facebook.com/apps

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

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

重定向网址必须是此网址(网站)中的网址。 类似“ 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格式向您提供您指定的重定向网址的访问令牌。

注意: 重定向网址必须是Facebook应用的Canvas网址内的路径,这些请求应该从Canvas网址指向的同一个域提交