2013-10-24 117 views
0

我正在嘗試在Android應用上實現Foursquare Native OAuth。我遵循foursquare-oauth-library示例,併爲用戶成功生成了access_token。然後,我們的應用程序的祕密後,Foursquare的建議沒有被存儲在應用程序的任何地方,而是執行服務器端授權代碼/ access_token交流我正在我的服務器上進行調用,但每次我這樣做時會得到一個redirect_uri_mismatch錯誤。Foursquare重定向uri與原生Android OAuth登錄不匹配

AuthCodeResponse codeResponse = FoursquareOAuth.getAuthCodeFromResult(resultCode, data); 

之後,我發送授權碼從我的Android應用程序,以我的rails服務器:

如示例應用程序指定我收到授權碼。我假設access_token應該在https://developer.foursquare.com/overview/auth#code的第3步之後獲得,但是我得到了redirect_uri_mismatch響應。

我用我的導軌服務器上Nestful發送Foursquare的我對的access_token要求:

response = Nestful.post 'https://foursquare.com/oauth2/access_token', 
     client_id: ENV_CONFIG['foursquare_client_id'], 
     client_secret: ENV_CONFIG['foursquare_client_secret'], 
     grant_type: 'authorization_code', 
     redirect_uri: ENV_CONFIG['redirect_uri'], 
     code: params[:code] 
@token = response['access_token'] 

的迴應是:

{"error":"redirect_uri_mismatch"} 

我已經雙重檢查應用程序的配置在Foursquare上,在那裏我還設置了我生成的Android Hash Key,甚至嘗試將其作爲redirect_uri參數來生成接入令牌,但無濟於事。

任何想法,我可能做錯了什麼?

回答

2

事實證明,給定的代碼檢查最初提供的redirect_uri。由於首先沒有指定,因此不應將redirect_uri參數傳遞給code/access_token交換呼叫。

相關問題