2017-08-24 5 views
0

Ich entwickle mit Google Drive API über JavaScript. Ich habe den Beispielcode ausprobiert und festgestellt, dass es einwandfrei funktioniert. Derselbe Code funktionierte jedoch nicht mit der Chrome-Erweiterung. Ich denke, es ist ein Problem mit dem Client-ID-Wert, aber ich glaube nicht, dass es seltsam ist, warum funktioniert es nicht mit Chrome-Erweiterungen?Warum funktioniert gapi.client.init (Google Drive API) nicht?

// Client ID and API key from the Developer Console 
    var CLIENT_ID = '467319036759-udrp5jb3257p1kd11n5016rdid4qm8kd.apps.googleusercontent.com'; 

    // Array of API discovery doc URLs for APIs used by the quickstart 
    var DISCOVERY_DOCS = ["https://www.googleapis.com/discovery/v1/apis/drive/v3/rest"]; 

    // Authorization scopes required by the API; multiple scopes can be 
    // included, separated by spaces. 
    var SCOPES = 'https://www.googleapis.com/auth/drive'; 

    var authorizeButton = document.getElementById('authorize-button'); 
    var signoutButton = document.getElementById('signout-button'); 

    /** 
    * On load, called to load the auth2 library and API client library. 
    */ 
    function handleClientLoad() { 
    gapi.load('client:auth2', initClient); 
    console.log("load ok"); 
    } 

    /** 
    * Initializes the API client library and sets up sign-in state 
    * listeners. 
    */ 
    function initClient() { 
    gapi.client.init({ 
     discoveryDocs: DISCOVERY_DOCS, 
     clientId: CLIENT_ID, 
     scope: SCOPES 
    }).then(function() { 
     // Listen for sign-in state changes. 
     console.log("client ok"); 
     gapi.auth2.getAuthInstance().isSignedIn.listen(updateSigninStatus); 

     // Handle the initial sign-in state. 
     updateSigninStatus(gapi.auth2.getAuthInstance().isSignedIn.get()); 

     authorizeButton.onclick = handleAuthClick; 
     signoutButton.onclick = handleSignoutClick; 
    }, function(error) { 
     console.log(error); 
    }); 

    console.log("client"); 
    } 

enter image description here

Console log "Client ok" nicht angezeigt

Die Adresse der Erweiterung I registriert haben, ist https://chrome.google.com/webstore/detail/study/minmfnjifbdpcphgildjgfpnbiejajml

+0

Was zeigt die Konsole? Suchen Sie in der richtigen Konsole (die in Ihrem Fall von Inspect Popup aufgerufen wird)? – Xan

+0

Konsolenprotokoll zeigt "load ok" und "client" an. Ich hoffe auf "Client ok". Seltsamerweise hinterlässt die Methode "gapi.client.init" kein Protokoll. – megu

+0

Bitte bearbeiten Sie die Frage zum Thema: fügen Sie ein [mcve] ein, das * das Problem dupliziert *. Für Chrome-Erweiterungen oder Firefox-WebExtensions müssen Sie fast immer Ihre * manifest.json * und einige der Hintergrund-, Inhalts- und/oder Popup-Skripte/HTML und häufig Webseiten-HTML/-Skripte einschließen. Fragen, die Debugging-Hilfe suchen ("Warum funktioniert mein Code nicht so, wie ich will?") ​​Muss Folgendes enthalten: (1) das gewünschte Verhalten, (2) ein spezifisches Problem oder einen Fehler und (3) den zur Reproduktion erforderlichen kürzesten Code * in der Frage selbst *. Bitte beachten Sie auch: [Welche Themen kann ich hier fragen?] (/ Help/on-topic) und [ask]. – Makyen

Antwort