无法通过应用链接授权移动

时间:2015-11-12 16:51:15

标签: android api authorization

我们正在开发一款应该从Moves app API获取数据的应用。

在手机上授权我们的应用时,我们设法成功地将桌面链接提供的PIN提交到移动应用中: https://api.moves-app.com/oauth/v1/authorize?response_type=code&client_id=<client_id>&scope=<scope>&state=<state>

如果我使用移动网站/应用链接,这将无效: moves://app/authorize?client_id=<client_id>&scope=activity%20location&state=<state>&redirect_uri=<redirect_uri>

注意:<redirect_uri>==encodeURIComponent("mymovesconnector:8081/callback")

我们从Moves API获得的响应为400:{"error":"invalid_grant"}

docs开始,它表示invalid_grant可能会发生:

  1. 请求中的代码无效或
  2. 代码已过期(当前有效5分钟)或
  3. 代码已被撤销,因为它已在访问令牌请求中使用(成功和不成功的请求都将撤销代码)或
  4. 在需要时你缺少redirect_uri参数。
  5. 我的核对清单:

    1. 我想这可能发生了,但是moves://提供的代码与https://请求提供的代码有何不同?为什么?我对此有何控制权?
    2. 不是我的情况,因为我在不到几秒的时间内就立即使用了代码
    3. 如果可能发生这种情况,除了通过重定向网址以外哪处可以发生?
    4. 我总是提供它。它始终是相同的 - 也在移动的应用程序设置中。
    5. 无法弄清楚我错过了什么。一步一步地通过文档多次。没有成功。

1 个答案:

答案 0 :(得分:0)

在写下我的问题时,我设法找到了解决这个问题的方法。

文档未指出response_type=code也可能用于moves://链接。我试图添加这个参数,它有效!

注意:这只在虚拟Android设备上测试过(Genymotion)。