【发布时间】:2016-08-03 11:04:45
【问题描述】:
有人可以帮我从 App Engine 应用程序访问 Big Query 吗?
我已完成以下步骤-
创建了一个 App Engine 项目。
将 google-api-client、oauth2client 依赖项(等)安装到 /lib 中。
通过云控制台为 App Engine 项目启用 Big Query API。
创建了一些“应用程序默认凭据”(一个“服务帐户密钥”)[JSON] 并将其/它们保存到 App Engine 应用程序的根目录。
根据以下内容创建了“大查询服务资源”-
def get_bigquery_service():
from googleapiclient.discovery import build
from oauth2client.client import GoogleCredentials
credentials=GoogleCredentials.get_application_default()
bigquery_service=build('bigquery', 'v2', credentials=credentials)
return bigquery_service
已验证资源存在 -
<googleapiclient.discovery.Resource object at 0x7fe758496090>
尝试使用以下方式查询资源(ProjectId 是 App Engine 应用程序的简称) -
bigquery=get_bigquery_service()
bigquery.tables().list(projectId=#{ProjectId},
datasetId=#{DatasetId}).execute()
返回以下 -
<HttpError 401 when requesting https://www.googleapis.com/bigquery/v2/projects/#{ProjectId}/datasets/#{DatasetId}/tables?alt=json returned "Invalid Credentials">
关于我可能有错误或遗漏的步骤有什么想法吗?整个身份验证过程似乎是一场噩梦,与 App Engine/PaaS 的易用性理念大相径庭:-(
谢谢。
【问题讨论】: