Uber API无效授权错误?

时间:2018-01-30 13:45:43

标签: php curl uber-api

我一直在努力理解并找到通过优步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页面中的所有代码。没别的。

问题:

  1. 有什么东西我不见了吗?

  2. 我是否需要在优步开发者信息中心中执行任何操作?

  3. 我需要在我的php页面中做任何其他事情吗?

  4. 任何帮助或指示是外行术语和有意义的将是值得赞赏的。

1 个答案:

答案 0 :(得分:0)

可能的解决方案来自:https://developer.uber.com/docs/riders/references/api/v2/token-post

  1. 您使用的是无效的refresh_token。您可以生成多个访问令牌,但只能使用最新生成的refresh_token。

  2. 在交换access_token的授权码时,您提供了无效的代码。