【发布时间】:2019-02-19 17:43:27
【问题描述】:
我有一个问题,当我通过 uber api 生成第一个 oauth 响应时,我得到了所有需要的信息(access_token,refresh_token)
但是当我希望为特定用户刷新 access_token 时,我得到了 invalid_grant(我知道这意味着刷新令牌已过期,但我生成了代码,第一次尝试失败,即使代码仍然有效)
这是我用来刷新令牌的代码,有人可以解释为什么它没有给我一个新代码吗?
function refreshToken()
{
$url = 'https://login.uber.com/oauth/v2/token';
$fields = array(
'client_id' => MY_CLIENT_ID,
'client_secret' => MY_CLIENT_SECRET,
'grant_type' => "refresh_token",
'refresh_token' => MY_REFRESH_TOKEN
);
$fields_string = '';
foreach ($fields as $key => $value) {
$fields_string .= $key . '=' . $value . '&';
}
$fields_string = rtrim($fields_string, '&');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, count($fields));
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_VERBOSE, true);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
我将代码存储在数据库中,获取它们并尝试从那里使用它们,验证码在我 oauth 之后工作正常,但我需要能够刷新访问令牌才能查询 UBER api对于我的 webhook 上的收据准备发布,如果令牌已过期,我将无法使用我拥有的当前身份验证令牌(承载令牌)访问呼叫
这是我每次得到的回应:
[error] => invalid_grant
【问题讨论】:
标签: php curl oauth-2.0 uber-api