在chrome扩展中使用gapi.client.drive的正确方法



我正在尝试使用驱动器来保存chrome扩展程序中的数据。

首先,我将所需的选项设置为 manifest.json

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

然后尝试获取文件列表:

$.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)
                })
            });
        });
    });
});

控制台 说:

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

错误是这样的:

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

该错误表示您正在尝试访问未经授权的空间。您的范围仅允许您使用"appDataFolder"空间。因此,你必须改变

gapi.client.drive.files.list()

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

相关内容

最新更新