0

Ich verwende Analytics Reporting API v4 (C#). Auf meiner lokalen Maschine funktioniert alles einwandfrei, aber nicht in der Produktion auf dem Webserver.Google Analytics Reporting API - Fehler beim Starten des Browsers auf dem Produktionsserver

ich eine OAuth 2.0-Client-ID in der Google-Entwickler-Konsole für Web-Anwendung auf beiden Adressen eingerichtet habe ('http://localhost:12345', 'http://localhost:12345/Callback' und die eigentliche Domäne auf dem Server: 'http://example.com', 'http://example.com/Callback')

Ich glaube nicht, dass der Fehler mit meinem Code verbunden ist. Und ich lese auch meine JSON von einer Online-Quelle, so dass es nicht mit Benutzer-lesen/schreiben Probleme verbunden sein kann. Und ich habe vollen Zugriff auf den Ordner App_Data in meinem Projekt auf dem Produktions-Server. Hier ist sie:

var path = Server.MapPath("~/App_Data"); 

var client = new WebClient(); 

var stream = client.OpenRead(https://api.myjson.com/bins/blahblah987654); 

var loginEmailAddress = ConfigurationManager.AppSettings["AnalyticsReporting.Email"]; 

return await GoogleWebAuthorizationBroker.AuthorizeAsync(
     GoogleClientSecrets.Load(stream).Secrets, 
     new[] { AnalyticsReportingService.Scope.Analytics }, 
     loginEmailAddress, CancellationToken.None, 
     new FileDataStore(path, fullPath: true)); 

auf meinem lokalen Rechner eine Datei auf dieser Linie erstellt: new FileDataStore(path, fullPath: true)); Aber nicht auf dem Server (auch wenn ich auf den App_Data-Ordner volle Berechtigung gesetzt haben). Und wenn ich die Datei manuell von der lokalen zur Produktionskopie kopiere, wird sie entfernt, wenn die URL, die den obigen Code enthält, getroffen wird.

+0

Was ist der Fehler? Haben Sie Ihre autorisierten Weiterleitungs-URIs überprüft? – sdhaus

+0

@sdhaus Dies ist die errorPage, die ich erhalte: https://accounts.google.com/o/oauth2/v2/auth?access_type=offline&response_type=code&client_id=934254096895-8bt34v7n9qs3t0kjl04gan1arjb5kkb5.apps.googleusercontent.com&redirect_uri=http:%2F%2Flocalhost : 55882% 2F autorisieren% 2F & Bereich = https:% 2F% 2Fwww.googleapis.com% 2Fauth% 2Fanalytics. Ich weiß nicht, warum es heißt: "Der Umleitungs-URI in der Anfrage, http: // localhost: 55882/authorize, stimmt nicht mit den für den OAuth-Client autorisierten überein", da die einzigen redirectUrs, die ich in der Entwicklerkonsole gesetzt habe, http: // sind beispiel.com und http://example.com/Callback? – user3228992

+0

Versuchen Sie, neue Anmeldeinformationen für den Produktionsserver zu erstellen. Es ist eine [bewährte Vorgehensweise] (https://developers.google.com/identity/protocols/OAuth2#scenarios), dass die Clientanmeldeinformationen für prod/test/staging unterschiedlich sind. Es dauert auch einige Zeit, bevor die Änderungen tatsächlich widerspiegeln. Hoffe, das hilft –

Antwort

0

es zur Arbeit kommen, müssen Sie Ihre console (nach Fehler) besuchen, und aktualisieren Sie Ihren autorisierten Redirect URIs http://localhost:55882/authorize/

Hinweis enthalten, dass diese rund 15 Minuten dauern kann, live zu gehen.

Während Sie example.com und example.com/Callback eingerichtet haben, lautet der Fehler, dass der tatsächliche URI, der für die Authentifizierung umgeleitet wird, http://localhost:55882/authorize/ ist.

Sie möchten möglicherweise genau überprüfen, wie Sie sich in der Produktion authentifizieren, da es nicht über einen localhost umgeleitet werden sollte.

+0

Ich kann nicht verstehen, warum es versucht, sich zu authentifizieren http: // localhost: 55882/authorize /? Ich habe diese URL nirgendwo benutzt. – user3228992

Verwandte Themen