我一直在努力理解并找到通过优步API及其无用文档的方法。
我设法将这段代码放在PHP中,使用CURL
来获取authorization_code
代码,以便我可以在PHP页面的其他部分进一步使用它。例如,request a ride
等......
但是,当我运行我的代码时,我收到此错误:
{"error": "invalid_grant"}
我在Google和STO上搜索得很高,看看我是否能找到一个可靠的答案,但遗憾的是似乎没有什么能给出直接的答案,而且我已经陷入了这个阶段。
这是我的代码:
<?php
$fields_string = '';
$fields = array(
'client_secret' => '57KC5WGG3Ia455lc-i53e345345znXBB_0',
'client_id' => 'nnV4-_lsG9xl-SbAIQjIhwer234534534',
'grant_type' => 'authorization_code',
'redirect_uri' => "http://localhost:3000/auth/uber/callback",
'code' => $_GET['code']
);
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string, '&');
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, "https://login.uber.com/oauth/v2/token");
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
$result = curl_exec($ch);
$responseData = json_decode($result , TRUE);
$access_token = $responseData["access_token"];
echo "Access Token :" . $access_token ;
curl_close($ch);
?>
值得一提的是,上面的代码就是我在php页面中的所有代码。没别的。
问题:
有什么东西我不见了吗?
我是否需要在优步开发者信息中心中执行任何操作?
我需要在我的php页面中做任何其他事情吗?
任何帮助或指示是外行术语和有意义的将是值得赞赏的。
答案 0 :(得分:0)
可能的解决方案来自:https://developer.uber.com/docs/riders/references/api/v2/token-post
您使用的是无效的refresh_token。您可以生成多个访问令牌,但只能使用最新生成的refresh_token。
在交换access_token的授权码时,您提供了无效的代码。