2012-10-08 85 views
2

嗨,我一直在試圖製作一個使用Biq Query API的應用程序。錯誤:redirect_uri_mismatch與谷歌應用程序使用Big Query API?

所有的OAuth2認證和客戶端祕密做工精細,當我在本地加載的應用程序,但是部署的代碼中,我得到以下錯誤後:

錯誤:redirect_uri_mismatch 請求細節

scope=https://www.googleapis.com/auth/bigquery 
response_type=code 
redirect_uri=https://terradata-test.appspot.com/oauth2callback 
access_type=offline 
state=https://terradata-test.appspot.com/ 
display=page 
client_id=660103924069.apps.googleusercontent.com 

但看我的API控制檯,我發現重定向uri https://terradata-test.appspot.com/oauth2callback是在我的列表或重定向uri的:

Redirect URIs:

1.https://terradata-test.appspot.com/oauth2callback

2.http://terradata-test.appspot.com/oauth2callback

3.http://1.terradata-test.appspot.com/oauth2callback

4.https://code.google.com/oauthplayground

我不知道我錯過了什麼來解決這個問題?爲什麼在API控制檯中列出的uri存在重定向錯誤?

該應用程序構建OAuth2裝飾通過像這樣的BIQ查詢API:

CLIENT_SECRETS = os.path.join(os.path.dirname(__file__), 
    'client_secrets.json') 

decorator = oauth2decorator_from_clientsecrets(
    CLIENT_SECRETS, 
    'https://www.googleapis.com/auth/bigquery') 

http = httplib2.Http(memcache) 

bq = bqclient.BigQueryClient(http, decorator) 

是否有任何更多的代碼,我應該把澄清的情況?任何投入將不勝感激。非常感謝!

+1

你能否確認客戶端ID /您正在用來向API發出請求的項目是您設置重定向URI的那個項目? –

回答

2

在標準的web服務器的OAuth 2.0流(授權代碼),有3個地方使用REDIRECT_URI。它必須在所有的三個地方是相同的:

  1. 在URL中你將用戶重定向到他們批准訪問和 得到一個授權碼。
  2. API控制檯
  3. 在 服務器到服務器的HTTPS後訪問令牌交換一個授權碼 時(+也許刷新令牌)
+0

我剛剛遇到了這個問題,我使用服務器端邏輯爲服務器到服務器的帖子生成redirect_uri。我在追加端口#以支持開發模式,因此在生產中生成了http://myapp.appspot.com:80/callback,它與期望的http://myapp.appspot.com/callback不匹配。 –

+0

Hello Ryan,你可以看看我關於BigQuery的問題嗎?謝謝! http://stackoverflow.com/questions/26424860/google-bigquery-redirect-uris-to-the-unc-path – VladL

相關問題