Como criar um painel do BigQuery usando o tutorial do Codelab
Eu estou completando o tutorial inicial dehttps://developers.google.com/bigquery/articles/dashboard
Estou no estágio "Criando o painel", mas quando executo o programa por meio do mecanismo do Google Search, posso fazer login. O painel de controle pede minha permissão para gerenciar meus dados usando o BigQuery (publicaria uma captura de tela, mas meu representante está muito baixo ). Quando eu aceito isso, só me leva a uma página em branco. No entanto, o código do main.py sugere que ele deve imprimir na página "Hello Dash! Last mod time = alguns números".
Curiosamente, quando implantei este programa usando o mecanismo do Google app, um erro: redirect_uri_mismatch é exibido. Agora, antes de perguntar se meu redirecionamento é o mesmo no console do Google Apps, ele é definido como http: // localhost: 8080 / oauth2callback e é exatamente o mesmo em minha referência de código client_secrets.json. << Isso foi corrigido, depois de alterar o ID do cliente no console do Google que ele agora carrega, no entanto, ainda recebo a tela em branco quando deveria estar mostrando o "hello dash!" da linha de resposta de gravação em main.py
Referi-me aErro de obtenção: redirect_uri_mismatch O URI de redirecionamento no pedido: http: // localhost: 8080 / oauth2callback não corresponde a um URI de redirecionamento registrado esta pergunta link que é muito semelhante, mas nenhuma das respostas são satisfatórias. Eu tentei todos eles.
main.py
from bqclient import BigQueryClient
import os
import httplib2
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
#from apiclient.discovery import build
from oauth2client.appengine import oauth2decorator_from_clientsecrets
from google.appengine.api import memcache
# Project ID for project to receive bill.
# During limited availability preview, there is no bill.
# The value should be your quoted Client ID number
# which you previously recorded from code.google.com/apis/console
PROJECT_ID = "client_id"
DATASET = "samples"
TABLE = "natality"
# CLIENT_SECRETS, name of a file containing the OAuth 2.0
# information for this application.
CLIENT_SECRETS = os.path.join(os.path.dirname(__file__), 'client_secrets.json')
http = httplib2.Http(memcache)
decorator = oauth2decorator_from_clientsecrets(CLIENT_SECRETS,
'https://www.googleapis.com/auth/bigquery')
bq = BigQueryClient(http, decorator)
class MainHandler(webapp.RequestHandler):
@decorator.oauth_required
def get(self):
self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write("""Hello dash!\n""")
modTime = bq.getLastModTime(PROJECT_ID, DATASET, TABLE)
if modTime is not None:
msg = 'Last mod time = ' + modTime
else:
msg = "Could not find last modification time.\n"
self.response.out.write(msg)
application = webapp.WSGIApplication([('/', MainHandler)], debug=True)
def main():
run_wsgi_app(application)
if __name__ == '__main__':
main()}
app.yaml
application: exalted-mode-398
version: 1
runtime: python27
api_version: 1
threadsafe: no
handlers:
- url: /favicon\.ico
static_files: favicon.ico
upload: favicon\.ico
- url: /oauth2callback
script: oauth2client/appengine.py
- url: /.*
script: main.py
client_secrets.json
{
"web": {
"client_id": "client_id",
"client_secret": "secret_number",
"redirect_uris": ["http://localhost:8080/oauth2callback"],
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token"
}
}
Alguém tem alguma idéia porque estou recebendo esse erro ???
Também removi meu número secreto e client_id por razões óbvias