2014-02-19 79 views
1

我試圖建立一個標誌在通過谷歌+我們的移動應用中。谷歌的OAuth驗證碼軌服務器

所以我們擁有Android客戶端去抓取的OAuth的谷歌API的驗證碼。

然後發送VERIFICATION_CODE迴護欄及護欄負責獲取訪問令牌/刷新令牌對,然後談話的API。

我在與驗證問題的VERIFICATION_CODE。

起初,它會返回

{ 
    "error" : "redirect_uri_mismatch" 
} 

所以讀了一下後,我們似乎不應該指定爲Android令牌的REDIRECT_URI但是當我嘗試REDIRECT_URI設爲零失敗與

{ 
    "error" : "invalid_request", 
    "error_description" : "Missing parameter: redirect_uri" 
} 

我也嘗試將其設置爲空字符串而不是零,並再次得到了uri_mismatch。

我試着用oauth操場獲得的驗證碼進行常規驗證,並且從那裏開始工作。

的代碼

@authorization = CLIENT_SECRETS.to_authorization 
@authorization.clear_credentials! 
@authorization.grant_type = 'authorization_code' 
@authorization.code = authorization_code 
@authorization.redirect_uri = nil 
@authorization.fetch_access_token! 

任何有點幫助,將不勝感激!

回答

0

好了,所以它實際上是有點隱蔽,但我發現它。

所以,你需要重定向URI設置憑據內成立了「帶外」 URI。

urn:ietf:wg:oauth:2.0:oob 

客戶實際上並不將其設置爲這個值,但我想谷歌的默認值是給它。

當前的signet gem不允許將redirect_uri設置爲該值,所以我在主倉庫中添加了PR,同時我使用了我的叉並且工作正常。

https://github.com/google/signet/pull/35