为什么我会收到错误请求uri?
https://login.uber.com/oauth/v2/authorize?response_type=code&client_id= “$设定[ '全球'] [ '的clientId'] '&安培; clientSecret =。”'。$设定[ '全球'] [ 'clientSecret']'&安培;范围= all_trips&安培; REDIRECT_URI = HTTP://'.$_SERVER [ 'HTTP_HOST'] .'token.php
答案 0 :(得分:0)
对于GET /oauth/v2/authorize端点,您发送的 clientSecret 参数不是必需的,可能会干扰其后端的某些参数验证。 您需要传递的参数是:
RESPONSE_TYPE
CLIENT_ID
范围
状态
redirect_uri
阅读上述网址,了解每个参数的含义。
确保您在查询参数redirect_uri中发送到GET https://login.uber.com/oauth/v2/authorize端点的URI的基础与您的应用{授权选项卡的Uber Developers Dashboard中定义的URI匹配。
正如authorize OAuth request的文档所说:
redirect_uri(可选)我们将重定向到的URI 资源所有者的授权 URI的基础必须与应用程序注册期间使用的redirect_uri匹配。
重定向网址可以是:
任何HTTPS://网址
的https://
自定义方案
custom-scheme://
确保您的重定向URI已启用HTTPS
根据相同的authorization and authentication documentation:
The Uber API implements the OAuth 2.0 standard for secure authentication and authorization.
All communication with our servers must be over SSL (https://).
要获得免费获取域名的TLS证书,我建议Let's Encrypt Certificate Authority
答案 1 :(得分:0)
1)надоработатьснапримерhttp://localhost/loacation.php()
2)获取代码символыизпеременной代码
require_once'uber.php'; $ settings = require_once'settings.php'; if(!isset($ _GET [“code”])){ setcookie(“AccessToken”,“”,time() - 3600); 标题(“位置:https://login.uber.com/oauth/v2/authorize?response_type=code&client_id=”。$ settings ['global'] ['client_id']。'& redirect_uri = localhost / location.php& client_secret ='。$ settings ['global'] ['client_secret “]); 死(); }
$result = postKeys("https://login.uber.com/oauth/v2/token",
array(
'client_secret'=>$settings['global']['client_secret'],
'client_id'=>$settings['global']['client_id'],
'grant_type'=> 'authorization_code',
'redirect_uri'=> 'http://localhost/location.php',
'code'=> $_GET["code"],
), array('Content-type: application/x-www-form-urlencoded')
);
// после получения ответа, проверяем на код 200, и если все хорошо, то у нас есть токен
if ($result["code"]==200) {
$result["response"]=json_decode($result["response"],true);
$token=$result["response"]["access_token"];
$new = new Token($settings);
$new->setToken($token);
}else
echo "не правильный код: ".$result["code"].' '.$result['response'];