https://developers.google.com/bigquery/authorization#service-accounts-appengineの手順に従って、アプリエンジンからbigqueryにクエリを実行しました。Google BigQuery用Google App Engineの承認
ステップ2では、Google Api Consoleで[チーム]をクリックし、App Engine>管理>権限にリダイレクトします。私はサービスアカウント名を電子メールとして追加し、開発者を選択するロール(オプション「編集可能」は利用できません)を追加し、「ユーザーを招待」をクリックします。その後、「確認のため[email protected]にメールが送信されました」というメッセージが表示されます。ステータスはPendingです。私はここにバグがあるようです?メール...
次を確認することができるか、私は次のコード使用してテストを行った:
#!/usr/bin/env python
import httplib2
import webapp2
from google.appengine.api import memcache
from apiclient.discovery import build
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
from oauth2client.appengine import AppAssertionCredentials
# BigQuery API Settings
PROJECT_NUMBER = 'XXXXXXXX'
credentials = AppAssertionCredentials(scope='https://www.googleapis.com/auth/bigquery')
http = credentials.authorize(httplib2.Http(memcache))
service = build("bigquery", "v2", http=http)
class MainHandler(webapp2.RequestHandler):
def get(self):
query = {'query':'SELECT word,count(word) AS count FROM publicdata:samples.shakespeare GROUP BY word;',
'timeoutMs':10000}
jobRunner = service.jobs()
reply = jobRunner.query(projectId=PROJECT_NUMBER,body=query).execute()
self.response.out.write(reply)
app = webapp2.WSGIApplication([
('/', MainHandler)
], debug=True)
を、応答が(グーグルから実行されている)した
HttpError: <HttpError 403 when requesting https://www.googleapis.com/bigquery/v2/projects/XXXXXXXX/queries?alt=json returned "Access Denied: Job YYYYYYYY:job_e57bdde0144c495dbc864ccbfb82b704: RUN_QUERY_JOB">
私はローカルホストからテストする場合、答えは次のとおりです。
HttpError: <HttpError 401 when requesting https://www.googleapis.com/bigquery/v2/projects/XXXXXXXX/queries?alt=json returned "Invalid Credentials">
誰かが私を助けることができますか? :-)
このコードは私のために完璧に機能します(私の場合、「XXX ..」をBigQueryプロジェクトID、文字列で置き換えた場合)、認証の問題です。 Btw、AppAssertionCredentialsはlocalhostでは動作しません。 BigQuery APIはhttps://code.google.com/apis/console/#project:ZZZ:services(APIプロジェクト番号としてZZZを使用)にありますか? –
はい、BigQueryがONです – Christian
これがApp Engineにある場合は、https://appengine.google.com/settings?&app_id=s~your-appengine-project-nameを確認してください。 「Google APIコンソールプロジェクト番号:」の下のリンクをご覧ください。それをクリックし、そのプロジェクトがBigQuery APIをオンにしていることを確認します。 –