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");
}
Console log "Client ok" nicht angezeigt
Die Adresse der Erweiterung I registriert haben, ist https://chrome.google.com/webstore/detail/study/minmfnjifbdpcphgildjgfpnbiejajml
Was zeigt die Konsole? Suchen Sie in der richtigen Konsole (die in Ihrem Fall von Inspect Popup aufgerufen wird)? – Xan
Konsolenprotokoll zeigt "load ok" und "client" an. Ich hoffe auf "Client ok". Seltsamerweise hinterlässt die Methode "gapi.client.init" kein Protokoll. – megu
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