过去几天我一直在尝试将我的应用程序与 uber 集成,但由于某种原因,在 oauth2 身份验证期间,我无法让 uber 给我一个有效的令牌。我可以获得访问代码,但是在使用 curl 时,无论我如何安排脚本,我似乎都无法获得访问令牌。这是我所拥有的:
<?php
echo $_GET['code']."<br>";
$token = curl_init();
$param = array(
'client_secret' => 'MY_SECRET',
'client_id' => 'MY_ID',
'grant_type' => 'authorization_code',
'code' => "{$_GET['code']}"
);
$postData = '';
foreach($param as $k => $v)
{
$postData .= $k . '='.urlencode($v).'&';
}
$postData = rtrim($postData, '&');
curl_setopt($token, CURLOPT_URL, 'https://login.uber.com/oauth/token');
curl_setopt($token, CURLOPT_HEADER, true);
curl_setopt($token, CURLOPT_RETURNTRANSFER, true);
curl_setopt($token, CURLOPT_POST, true);
curl_setopt($token, CURLOPT_POSTFIELDS, $postData);
$returned_token = curl_exec($token);
curl_close($token);
echo $returned_token;
?>
我已经仔细检查了我的秘密和身份证,两者都是正确的。每次我要获取访问代码时,我都可以看到它是独一无二的,我可以看到它在我重定向到的授权页面上回显,但无论我不断收到以下响应:
{"error": "access_denied"}