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