2015-11-12 38 views
0

我們正在開發一個應用程序,該應用程序應該從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參數。

我的清單:

  1. 我想這可能會發生,但如何/爲什麼要這個代碼,提供了moves://,比通過https://請求中提供的有什麼不同?我對此有什麼控制?
  2. 不是我的情況,因爲我在幾秒鐘內馬上使用代碼
  3. 如果發生這種情況,除了通過重定向url之外可能發生什麼情況?
  4. 我總是提供它。它總是一樣的 - 也在移動的應用程序設置。

找不到我失蹤的東西。多次瀏覽文檔,一步一步。沒有成功。

回答

0

在寫下我的問題時,我設法找出瞭解決這個問題的方法。

該文檔沒有指出response_type=code也可能用於moves://鏈接。我試圖添加這個參數,它工作!

注意:這僅在一個虛擬Android設備(Genymotion)上進行過測試。