我正在使用这样的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
我收到以下错误:
“message”:“缺少redirect_uri参数。, “type”:“OAuthException”, “代码”:191
我有我的申请网址:otagz.cloudfoundry.com
我知道有关于这个问题的另一个问题,但没有解决方案,而且是从2010年开始。
有人知道redirect_uri有什么问题吗?
谢谢, 克里斯蒂安
答案 0 :(得分:11)
如果您正在使用CURL命令行工具 - 可能您遇到了与我相同的问题:只需将URL放在引号中即可。有关此错误,请参阅Facebook答案:https://developers.facebook.com/bugs/1374437326120797
我不确定Facebook使用Stackoverflow作为官方通信方式。你可以在这里得到更快的答案:https://developers.facebook.com/bugs/
答案 1 :(得分:2)
有同样的问题,通过从网址中删除空格来解决它(我从Facebook网站上复制了它,并且在参数之间有一些额外的空格)
答案 2 :(得分:0)
我正面临着你的问题,但我设法用下面的方法来解决它。 它不需要重定向
假设您已经获得了短期访问令牌
$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];
答案 3 :(得分:0)
尝试将参数grant_type
设置为client_credentials
。网址将如下所示: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";