【问题标题】:Uber API Unauthorized access issueUber API 未经授权的访问问题
【发布时间】:2017-02-26 22:09:15
【问题描述】:

我目前正在努力将 Uber rest api 与我的 Alexa 技能集成。

我无法使用 Uber API 发出叫车请求。我正在使用 API 的沙盒版本:

 https://sandbox-api.uber.com/v1/requests

当我调用上述 API 时,我得到:

“401 Unauthorized”作为响应。

我正在使用 Java 8 进行开发。

我正在使用优步开发者仪表板中的访问令牌。在“设置”选项卡下,在“使用个人访问令牌进行测试”部分中,有一个“生成新访问令牌”按钮。单击此按钮会生成访问令牌。

我在 Authorization 标头中设置上面生成的访问令牌。这是代码sn-p:

HttpPost httpPost = new HttpPost("https://sandbox-api.uber.com/v1/requests");
httpPost.setHeader("Authorization", "Bearer " + access_token);

我是否需要在优步开发者信息中心的“授权”选项卡下进行任何设置?目前我没有做任何改变,一切都保持默认。

在将访问令牌设置到标头之前是否需要对其进行编码?

请告诉我。

非常感谢。

【问题讨论】:

    标签: java uber-api


    【解决方案1】:

    很遗憾,您不能将仪表板生成的令牌用于“受限访问”范围(例如 POST v1/requests 所需的 requests),您必须通过 OAuth 步骤生成访问令牌以进行测试在沙盒中。

    由于您无法使用仪表板令牌在沙盒中测试 POST v1/requests 端点,请尝试使用此方法快速生成用于测试的令牌:

    1. 在您的浏览器中转到此 URL(将 YOUR_CLIENT_ID 替换为您的应用程序客户端 ID,将 YOUR_CALLBACK_URL 替换为您的回调 URL - 在仪表板的“授权”选项卡中设置回调 URL - 可以是 localhost):

      https://login.uber.com/oauth/v2/authorize?response_type=code&client_id= YOUR_CLIENT_ID&scope=request&redirect_uri=YOUR_CALLBACK_URL
      
    2. 使用您的超级开发者帐户登录并点击“允许”

    3. 您将被重定向到带有 code 查询字符串的 redirect_uri,复制 code 的值并将其粘贴到此 cURL 命令中以获取您的访问令牌(也替换所有其他需要的值):

      curl -F 'client_secret=YOUR_CLIENT_SECRET' \
          -F 'client_id=YOUR_CLIENT_ID' \
          -F 'grant_type=authorization_code' \
          -F 'redirect_uri=YOUR_REDIRECT_URI' \
          -F 'code=CODE_FROM_REDIRECT' \
          https://login.uber.com/oauth/v2/token
      

    如果成功,您应该在响应中收到access_token

    更多信息在the Authorization guide

    您也不必在将访问令牌设置在标头中之前对其进行编码。

    希望对你有帮助!

    【讨论】:

    • 在第一步中,我们必须手动复制 url 并放入浏览器并获取代码和代码在 10 分钟内过期,所以每次。但是如何通过api调用获取代码?提前致谢
    • 或者复制网址是一次性的?
    • OAuth 2.0 授权授权流程的本质是您必须要求用户首次使用您的应用进行身份验证(步骤 1)。然后,当您将code 交换为access_token(第3 步)时,您需要将此access_token 保存在某处并将其用于对API 的进一步请求。访问令牌将在有效负载中包含refresh_token,因此您可以在访问令牌在 30 天后过期时刷新它。
    猜你喜欢
    • 2016-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-05
    • 1970-01-01
    • 2013-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多