首页 > 解决方案 > UBER 无法完成 Oauth 流程

问题描述

我正在努力将 UBER API 集成到我的应用程序中。第一步顺利:创建一个授权 url,用户被重定向到 Uber,登录,接受共享所需的范围,然后 UBER 重定向到我在仪表板和授权 url 中提供的重定向 url。

然后我向 https://login.uber.com/oauth/v2/token发出 POST 请求以 获取访问令牌

这是我在这个 url 上发送给 Uber 的有效载荷

{
    "code": "obtained_from_redirection_url",
    "client_id": "XXXXXXX",
    "client_secret": "XXXXXXX",
    "redirect_uri": "https://myredirection-url.me",
    "grant_type": "authorization_code",
    "scope": "all_trips history history_lite places profile request request_receipt ride_widgets" 
}

响应总是

{
    "error": "unsupported_grant_type"
}

如您所见,grant_type : authorization_code值是 Uber 提供的值。

您在此处看到的范围与使用授权 url 发送的范围完全相同。

所以我们至少可以说显示的错误与导致问题的原因不对应,这对我来说仍然是个谜。

我将不胜感激任何帮助。

标签: uber-api

解决方案


这个问题的答案是令牌端点期望使用 aContent-Type = x-www-form-urlencoded而不是 JSON 发出 POST 请求。UBER 的文档中没有记录它,我希望这是因为它让我日复一日地寻求解决方案。


推荐阅读