14

我正在使用这样的 FB 交换令牌 api:

https://graph.facebook.com/oauth/access_token?client_id={client_id}8&client_secret={client_secret}}&grant_type=fb_exchange_token&fb_exchange_token={one_hour_token}&redirect_uri=http%3A%2F%2Fotagz.cloudfoundry.com%2FfacebookCallback

我收到以下错误:

“消息”:“缺少 redirect_uri 参数。”“类型”:“OAuthException”,“代码”:191

我有我的应用程序 URL:otagz.cloudfoundry.com

我知道关于这个主题还有另一个问题,但没有解决方案,它是从 2010 年开始的。

有人知道redirect_uri 有什么问题吗?

谢谢,克里斯蒂安

4

5 回答 5

13

如果您使用的是 CURL 命令行工具 - 可能您遇到的问题与我相同:只需将 URL 放在引号中即可。请参阅 Facebook 对此错误的回答:https ://developers.facebook.com/bugs/1374437326120797

我不确定 Facebook 是否使用 Stackoverflow 作为官方沟通方式。你会在这里得到更快的答案:https ://developers.facebook.com/bugs/

于 2013-08-21T07:15:21.617 回答
12

有同样的问题,通过从 url 中删除空格来解决它(我从 facebook 网站复制了它,参数之间有几个额外的空格)

于 2017-10-17T12:12:06.007 回答
1

我遇到了你的问题,但我设法用下面的方法解决了它。它不需要重定向

假设您已经获得了短期访问令牌

$accessToken;

$graph_url = "https://graph.facebook.com/oauth/access_token?client_id=".$your_app_id."&client_secret=".$your_app_secretkey."&grant_type=fb_exchange_token&fb_exchange_token=".$accessToken;

$result = file_get_contents($graph_url);

parse_str($result, $output);

echo $output[access_token];
echo $output[expires];  
于 2012-08-15T16:52:44.250 回答
1

尝试将参数设置grant_typeclient_credentials. URL 会是这样的:https://graph.facebook.com/v2.8/oauth/access_token?client_id=XXX&client_secret=XXX&fb_exchange_token=XXX&grant_type=client_credentials

或者让它更具可读性:

$q = http_build_query(array(
    'client_id' => $app_id,
    'client_secret' => $app_secret,
    'fb_exchange_token' => $user_token,
    'grant_type' => 'client_credentials'
));
$url = "https://graph.facebook.com/v2.8/oauth/access_token?$q";
于 2018-01-09T05:00:31.203 回答
-1

这可能会帮助一些人

不要将结束正斜杠 (/) 放在 url 之后

正确的 URL = https://graph.facebook.com/oauth/access_token?client_id= ...。

错误的 URL = https://graph.facebook.com/oauth/access_token/?client_id= ..

于 2021-09-29T11:46:35.873 回答