2017-10-22 6 views
0

Ich versuche Laufwerk zu verwenden, um Daten von Chrome-Erweiterung zu speichern.Richtiger Weg, um gapi.client.drive in der Chrome-Erweiterung zu verwenden

Zuerst stellte ich Optionen benötigt, um manifest.json

"oauth2": { 
    "client_id": "999999.apps.googleusercontent.com", 
    "scopes": [ 
     "https://www.googleapis.com/auth/drive.appdata" 
    ] 
}, 

Dann versuchen Liste der Dateien zu erhalten:

$.getScript("https://apis.google.com/js/client.js", function() { 

    gapi.load('client', function() { 

     console.log("gapi.client is loaded") 

     gapi.client.load('drive', 'v3', function() { 

      console.log("gapi.client.drive is loaded"); 

      chrome.identity.getAuthToken({'interactive': true}, function (token) { 

       gapi.client.setToken({access_token: token}); 

       console.log("token :", token); 

       gapi.client.drive.files.list().then(function (list) { 
        console.log(list) 
       }) 

      }); 

     }); 
    }); 
}); 

Console sagte:

gapi.client is loaded 
gapi.client.drive is loaded 
token : [TOKEN] 

Und der Fehler so:

"code": 403, 
"message": "The granted scopes do not give access to all of the requested spaces." 

Antwort

0

Der Fehler weist darauf hin, dass Sie versuchen, auf nicht autorisierte Bereiche zuzugreifen. In Ihrem Bereich können Sie nur den Bereich "appDataFolder" verwenden. Deshalb müssen Sie

gapi.client.drive.files.list()

für

gapi.client.drive.files.list({spaces:"appDataFolder"}) ändern.

Verwandte Themen