Autorização do Google App Engine para o Google BigQuery
Eu segui as instruções emhttps://developers.google.com/bigquery/authorization#service-accounts-appengine para fazer algumas consultas do mecanismo de aplicativos para bigquery.
Na etapa 2, clico em Equipe no Console do Google Api e ele redireciona para o App Engine> Administração> Permissões. Eu adiciono o nome da conta de serviço como E-mail e como uma função que seleciono desenvolvedor (a opção "pode editar" não está disponível) e, em seguida, clique em "Convidar usuário". Depois disso, aparece uma mensagem: "Um email foi enviado para [email protected] para verificação." e o status está pendente. Como eu pude confirmar o email ?, parece que há um bug aqui ...
Em seguida, fiz um teste usando o seguinte código:
#!/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)
E a resposta foi (correndo do google):
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">
Se eu testar do host local, a resposta é:
HttpError: <HttpError 401 when requesting https://www.googleapis.com/bigquery/v2/projects/XXXXXXXX/queries?alt=json returned "Invalid Credentials">
Alguém poderia me ajudar? :-)