【问题标题】:Estimate ride price (Uber)估计乘车价格(优步)
【发布时间】:2018-05-04 18:28:02
【问题描述】:

好吧,我正在尝试使用 api 为 uber 乘车创建价格请求,但我没有成功 .. 我不明白给出这些错误的代码发生了什么,我会打印出来把代码放在这里,如果你能帮助我,我将不胜感激......

这是错误:


注意:未定义索引:第 20 行 C:\xampp\htdocs\index.php 中的代码

注意:未定义变量:C:\xampp\htdocs\index.php 中的 fields_string 在第 11 行 {"error": "invalid_grant"}


我的 index.php:

<?php

function fetchUrl($url,$code){
    $fields = array(
        'client_id' => "ibhY[.....]BI6",
        'client_secret' => "vMq[.....]6-ga[.....]rqU-[.....]",
        'grant_type' => "authorization_code",
        'redirect_uri' => "http://localhost:80/request.php",
        'code' => $code
    );
    foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
    rtrim($fields_string, '&');
    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL, $url);
    curl_setopt($ch,CURLOPT_POST, count($fields));
    curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
    $result = curl_exec($ch);
    curl_close($ch);
}
$data = fetchUrl('https://login.uber.com/oauth/v2/token', $_GET['code']);
$data = json_decode($data);
print_r($data);

我的请求.php


<?php

$token = "KA.eyX[....................................]5jk";


$header = array(
    "Authorization: Token $token",
    "Content-Type: application/json",
    "Accept-Language: en_US");

// CALCULATE FAIR

$url = "https://api.uber.com/v1.2/estimates/price?start_latitude=37.7752315&start_longitude=-122.418075&end_latitude=37.7752415&end_longitude=-122.518075";


$curl    = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_USERPWD, $token);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
$output1 = curl_exec($curl);

echo "<pre>";
print_r($output1);

image from my uber control panel

【问题讨论】:

  • 如果我使用 uber 控制面板给出的授权链接会出现以下错误:" {"message":"No authentication provided.","code":"unauthorized"} "
  • 您的授权流程似乎无效。如果你得到 {"error": "invalid_grant"} 那么这意味着查询参数代码中的代码已经被使用过一次或者已经失效。你能解释一下你是如何使用“优步控制面板给出的授权链接”的吗?你得到access_token了吗?并使用此令牌进行估算?

标签: php uber-api


【解决方案1】:

以下错误:

Notice: Undefined index: code in C:\xampp\htdocs\index.php on line 20

指的是下面这行代码:

$data = fetchUrl('https://login.uber.com/oauth/v2/token', $_GET['code']);

这表明授权代码未传递到您的 index.php 脚本中。

您需要获得用户的授权才能接收代码。可以在此处找到有关如何执行此操作的文档:

https://developer.uber.com/docs/riders/guides/authentication/user-access-token#step-1-user-authorizes-your-app

获得此代码后,您将能够请求和访问令牌并代表用户提出请求(例如获取价格估算)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-22
    • 2017-01-14
    • 2019-12-30
    • 2021-09-18
    • 2011-02-17
    • 1970-01-01
    相关资源
    最近更新 更多