我有一个gae应用程序,它有一个视图可以做到这一点:
from apiclient.discovery import build
from oauth2client.client import GoogleCredentials
# Grab the application's default credentials from the environment.
oCredentials = GoogleCredentials.get_application_default()
# Construct the service object for interacting with the BigQuery API.
oBigQuerySerivice = build('bigquery', 'v2', credentials=oCredentials)
oTables = oBigQuerySerivice.tables()
d = oTables.list(projectId=PROJECT,datasetId=DATASET).execute()
它的效果非常好
现在我想在单元测试中运行相同的代码,同样的virtualenv被激活。它指的是相同的数据集,相同的项目和相同的json服务密钥文件。我希望结果是一样的。但是唉:
HttpError: <HttpError 401 when requesting https://www.googleapis.com/bigquery/v2/projects/projectwaxed/datasets/bi_audit_dev/tables?alt=json returned "Invalid Credentials">
我的问题是:我应该如何测试我的代码是否正在执行有效的大查询?文档遍布各处,我只是没有找到答案
答案 0 :(得分:0)
我要捅这个,不确定它会有多大帮助。道歉。您的应用程序在此实例中是否未使用GAE进行身份验证,还是只进行大查询?
我在处理BT和App Engine的许多auth问题时都遇到了困难。我正在尝试从处理它的时候挖掘我的笔记。如果您能够购买Google BigQuery分析书,那么它非常可靠,但某些Auth资料已经过时了。
如果您键入printenv(unix),您是否看到GOOGLE_APPLICATION_CREDENTIALS路径已声明?我遇到的问题是我的env vars没有幸存下来的新vm实例。
顺便说一下,我使用这个youtube视频进行了oauth2演练 - https://www.youtube.com/watch?v=HoUdWBzUZ-M