Erstellen eines BigQuery Dashboards mit dem Codelab Tutorial

Ich beende das Start-Tutorial unter https://developers.google.com/bigquery/articles/dashboard

Ich bin bei der "Building the Dashboard" -Stadium, aber wenn ich das Programm durch Google App-Engine laufen kann, kann ich mich anmelden, Hallo Dashboard fragt nach meiner Erlaubnis, meine Daten mit BigQuery zu verwalten (würde einen Screenshot schreiben, aber mein Repräsentant ist zu niedrig ). Wenn ich das akzeptiere, braucht es mich einfach zu einer leeren Seite. Allerdings schlägt der Code von main.py vor, dass er auf die Seite "Hello Dash! Last mod time = somenumbers" drucken sollte.

Interessanterweise, wenn ich dieses Programm mit Google App Engine ein Fehler: redirect_uri_mismatch zeigt. Jetzt, bevor Sie fragen, ob meine redirct uri sind die gleichen in der Google-Apps-Konsole ist es als http: // localhost: 8080 / oauth2callback gesetzt und es ist genau das gleiche in meinem client_secrets.json Code-Referenz. << Dies wurde behoben, nachdem Sie die Client-ID in der Google-Konsole geändert haben, lädt es jetzt, aber ich bekomme immer noch den leeren Bildschirm, wenn es den "Hallo Bindestrich" zeigen sollte. Von der Schreibantwortzeile in main.py

Ich habe auf Erhalten Fehler: redirect_uri_mismatch Die Umleitung URI in der Anfrage: http: // localhost: 8080 / oauth2callback nicht mit einem registrierten Umleitung URI diese Link-Frage, die sehr ähnlich ist, aber NONE der Antworten sind zufriedenstellend. Ich habe sie alle ausprobiert

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" } } 

Hat jemand eine Idee, warum ich diesen Fehler bekomme ???

Auch habe ich meine geheimen nummer und client_id aus offensichtlichen Gründen entfernt

  • Google-Anwendungs-Engine, maximale Anzahl statischer Dateien?
  • Access-Control-Allow-Origin-Header auf Google App Engine
  • Wie importiere ich Module in Google App Engine?
  • Google Appengine Sende lokalen GIF als E-Mail-Anhang
  • Heruntergeladener Dateiname mit Google App Engine Blobstore
  • Wie kann ich mehrere Dateien in BlobStore hochladen?
  • Python ist die beste Programmiersprache der Welt.