错误:使用Big Query API的google应用程序redirect_uri_mismatch?

时间:2012-10-08 21:49:20

标签: google-app-engine google-bigquery

嗨,所以我一直在尝试制作一个使用Biq查询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:

  

重定向URI:

     

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)

我是否应该提供更多代码来澄清情况?任何投入将不胜感激。非常感谢!

2 个答案:

答案 0 :(得分:2)

在标准Web服务器OAuth 2.0流程(授权代码)中,使用redirect_uri有3个位置。它必须在所有三个地方都相同:

  1. 在网址中,您可以重定向用户,以便他们批准访问权限 获得授权码。
  2. 在API控制台中
  3. 在 交换授权代码时的服务器到服务器HTTPS发布 用于访问令牌(+可能是刷新令牌)

答案 1 :(得分:0)

您可以通过后续步骤创建API凭据 https://console.cloud.google.com/apis/credentials

客户Oauth Id 网络类型 JavaScript授权 - > https://yourapp.appspot.com

授权的URI - > https://yourapp.appspot.com/oauth2callback

这是您在部署之前必须在本地应用中使用的凭据