0

J'utilise l'API de rapport d'analyse v4 (C#). Sur ma machine locale tout fonctionne bien, mais pas en production sur le serveur web.API Google Analytics Reporting - Echec du lancement du navigateur sur le serveur de production

J'ai mis en place un OAuth 2.0 ID client dans la console des développeurs Google pour l'application Web pour les deux adresses ('http://localhost:12345', 'http://localhost:12345/Callback' et le domaine réel sur le serveur: 'http://example.com', 'http://example.com/Callback')

Je ne pense pas que l'erreur est connectée à mon code .. Et j'ai aussi lu mon json d'une source en ligne, donc il ne peut pas être lié à des problèmes de lecture/écriture. Et j'ai défini un accès complet au dossier App_Data dans mon projet sur le serveur de production. Ici, il est:

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)); 

Sur ma machine locale un fichier est créé à cette ligne: new FileDataStore(path, fullPath: true)); Mais pas sur le serveur (même si j'ai l'autorisation complète mis à la App_Data-dossier). Et si je copie manuellement le fichier de local à production, il est supprimé lorsque l'URL contenant le code ci-dessus est atteinte.

+0

Quelle est l'erreur? Avez-vous vérifié vos URI de redirection autorisées? – sdhaus

+0

@sdhaus Voici l'erreur que j'ai reçue: 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% 2Fauthorize% 2F & scope = https:% 2F% 2Fwww.googleapis.com% 2Fauth% 2Fanalytics. Je ne sais pas pourquoi il est dit "L'URI de redirection dans la requête, http: // localhost: 55882/authorize, ne correspond pas à ceux autorisés pour le client OAuth" que les seuls redirectUrs que j'ai définis dans la console des développeurs est http: // exemple.com et http://example.com/Callback? – user3228992

+0

Essayez de créer de nouvelles informations d'identification pour le serveur de production. C'est une [meilleure pratique] (https://developers.google.com/identity/protocols/OAuth2#scenarios) que les informations d'identification du client pour prod/test/mise en scène sont différentes. Cela prend également un certain temps avant que les changements ne se reflètent réellement. J'espère que cela aide –

Répondre

0

Pour le faire fonctionner, vous devez visiter votre console (selon l'erreur), et mettre à jour vos URIs de redirection autorisés à inclure http://localhost:55882/authorize/

Notez que cela peut prendre environ 15 minutes pour aller vivre. Si vous avez configuré example.com et example.com/Callback, l'erreur indique que l'URI réel qui redirige l'authentification est http://localhost:55882/authorize/.

Vous voudrez peut-être vérifier exactement comment vous vous authentifiez en production, car il ne devrait pas être redirigé via un hôte local.

+0

Je ne peux pas comprendre pourquoi il essaie d'authentifier à http: // localhost: 55882/authorize /? Je n'ai pas utilisé cette adresse partout. – user3228992