2017-01-03 2 views
1

Ich stelle diese Frage nicht, ohne die Dokumente zu suchen und zu lesen. Ich war bisher 2 Tage dort. Ich bin sicher, ich vermisse etw. Ich versuche Google Auth auf Laufwerk Tabellenkalkulation zu implementieren. Ich habe alles versucht aber trotzdem die Fehlermeldung (redirect_uri_mismatch) erhalten. Grundsätzlich möchte ich ein Sidepanel mit einem Login-Bildschirm. Der Benutzer klickt auf die Schaltfläche, auth magic wird ausgeführt und leitet einen anderen HTML-Druck "Erfolg" ein, wenn der Benutzer den Zugriff zulässt.Google Skript oauth2 Fehler: redirect_uri_mismatch

  1. Ich habe ein Projekt in Google Dev-Konsole erstellt.
  2. erstellt Berechtigungsnachweise
    2.1-Client-ID:
    131579675294-jc1c0ckuaa7n7ih7eevg19cisthgt00e.apps.googleusercontent.com

    2.2 Client-Geheimnis: XaebFsC18qfMmcZJKgokLEYo

  3. Set Rückruf uri:
    https: // script.google .com/macros/d/MCgMJPIdD1bbeG1PsFaNug8uUfae5TWT/Benutzercallback

  4. Projektschlüssel: MCgMJPIdD1bbeG1PsFaNug8uUifae5TWT

    Skript-ID: 1DYEShH45-AtikbEwfAG8w9P7Y39FHhCB-nGHWHOW4mUtq5DZLvubDxev

    angeblich projectKey veraltet und stattdessen muss Skript-ID verwendet werden, aber weder funktioniert.

  5. Ich benutze oauth2 so habe ich the external lib: 1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF

  6. Erläuterung: meine gs Datei unter den folgenden Code hat. Ich habe eine Sidebar mit einer Schaltfläche ruft onSignIn(), wenn Sie darauf klicken. Ich erwarte den Zugriff auf Tabellen mit der Auth. Als Ausgangspunkt möchte ich die Autorisierungsseite sehen. Nachdem ich es akzeptiert habe, möchte ich, dass es auf eine Seite umleitet, die callback_uri ist und etwas Einfaches anzeigt. Aber es gibt mir den Fehler. Die ironische Phase war die Endpoint-Browser-Verbindung, die ich erstellt und erfolgreich umgeleitet hatte.

ENDPUNKT BROWSER LINK

https://accounts.google.com/o/oauth2/auth?redirect_uri=https%3A%2F%2Fscript.google.com%2Fmacros%2Fd%2FMCgMJPIdD1bbeG1PsFaNug8uUifae5TWT%2Fusercallback&response_type=code&client_id=131579675294-jc1c0ckuaa7n7ih7eevg19cisthgt00e.apps.googleusercontent.com&approval_prompt=force&scope=https%3A%2F%2Fdocs.google.com%2Ffeeds

Was mache ich falsch? Deine Hilfe wird geschätzt. Danke.

var CLIENT_ID = '131579675294-jc1c0ckuaa7n7ih7eevg19cisthgt00e.apps.googleusercontent.com'; 

    var CLIENT_SECRET = 'XaebFsC18qfMmcZJKgokLEYo'; 

    function onSignIn() { 
     var service = getService(); 
     if (!service.hasAccess()) { 
      var authorizationUrl = service.getAuthorizationUrl(); 
      var template = HtmlService.createTemplate('<a href="<?= authorizationUrl ?>" target="_blank">Authorize</a>'); 
      template.authorizationUrl = authorizationUrl; 
      var page = template.evaluate(); 
      return HtmlService.createHtmlOutput(page); 
     } 
    } 


     function authCallback(request) { 
     var service = getService(); 
     var authorized = service.handleCallback(request); 
     if (authorized) { 
      return HtmlService.createHtmlOutput('Success!'); 
     } else { 
      return HtmlService.createHtmlOutput('Denied'); 
     } 
     } 



     function getService() { 
     return OAuth2.createService('spreadsheets_ozzy123') 

      .setAuthorizationBaseUrl('https://accounts.google.com/o/oauth2/auth') 

      .setTokenUrl('https://accounts.google.com/o/oauth2/token') 

      .setClientId(CLIENT_ID) 

      .setClientSecret(CLIENT_SECRET) 

      .setCallbackFunction('authCallback') 

      .setScope('https://docs.google.com/feeds') ; 
     } 




     function onOpen() { 
      SpreadsheetApp.getUi() // Or DocumentApp or FormApp. 
       .createMenu('Custom Menu') 
       .addItem('Show sidebar', 'showSidebar') 
       .addToUi(); 
     } 


     function showSidebar() { 
     var html = HtmlService.createTemplateFromFile('LoginSideMenu').evaluate(); 
      SpreadsheetApp.getUi().showSidebar(html); 
     } 


     function include(filename) { 
      return HtmlService.createHtmlOutputFromFile(filename).getContent(); 
     } 

FULL ERROR

400. That’s an error. 

Error: redirect_uri_mismatch 

The JavaScript origin in the request, https://n-g7vwwdjiqopmv3hpcys4noea4krn6nxax6uaoda-0lu-script.googleusercontent.com, does not match the ones authorized for the OAuth client. Visit https://console.developers.google.com/apis/credentials/oauthclient/131579675294-jc1c0ckuaa7n7ih7eevg19cisthgt00e.apps.googleusercontent.com?project=131579675294 to update the authorized JavaScript origins. 

Learn more 

Request Details 
redirect_uri=storagerelay://https/n-g7vwwdjiqopmv3hpcys4noea4krn6nxax6uaoda-0lu-script.googleusercontent.com?id=auth704130 
response_type=permission id_token 
scope=email profile openid 
openid.realm= 
client_id=131579675294-jc1c0ckuaa7n7ih7eevg19cisthgt00e.apps.googleusercontent.com 
ss_domain=https://n-g7vwwdjiqopmv3hpcys4noea4krn6nxax6uaoda-0lu-script.googleusercontent.com 
fetch_basic_profile=true 
gsiwebsdk=2 
That’s all we know. 
+0

@ShyamKansagra Vielen Dank so so sehr! Ich war mir so sicher, dass ich die richtige Kundennummer verwendete. Nachdem ich über Resources -> Advanced Services darauf zugegriffen hatte, wurde mir klar, dass das nicht stimmte. Ersetzte die richtigen, aber lief noch immer nicht. Dann habe ich ein neues Blatt erstellt und den ganzen Code auf den neuen übertragen. Dann hat es geklappt! Ich bin mir nicht sicher, wie ich deinen Kommentar gutschreiben soll. Gib mir Bescheid. – BinaryWo

+0

Gern geschehen :), ich habe den gleichen Kommentar als Antwort hinzugefügt. Du kannst es akzeptieren. –

Antwort

2
  1. Zum Ressourcen -> Erweiterte Dienste. Klicken Sie unten auf die Google Developers-Konsole.

  2. Sie hätten den API-Manager geöffnet.

  3. Jetzt, gehen Sie zu den Anmeldeinformationen in der linken oberen Panel.

  4. Stellen Sie sicher, dass Sie dieselbe Client-ID verwendet haben, die dort in Ihrem Code angezeigt wird. Außerdem gibt es 2 Optionen: Autorisierte js Ursprünge und autorisierte Weiterleitungs-URLs.
  5. In Option von URLs, fügen Sie die nicht übereinstimmende URL von Ihrem 400 Fehler.

Klicken Sie auf Speichern und versuchen Sie es erneut.

Verwandte Themen