繁体   English   中英

google drive api v3 创建文件夹静默失败

[英]google drive api v3 create folder fails silently

通过完整范围的 OAuth 成功验证后:

https://www.googleapis.com/auth/drive` 

我根据创建文件夹中的示例创建了一个文件夹

   var fileMetadata = {
        'name' : name,
        'mimeType' : 'application/vnd.google-apps.folder',
//        'parents': [ parent ]
    };
   gapi.client.drive.files.create({
       resource: fileMetadata,
       fields: 'id'
    }, function(err, file) {
      if(err) {
        // Handle error
        console.log(err);
      } else {
        console.log('Folder Id: ', file.id);
        return file.id;
      }
    });

回调函数永远不会被调用,控制台中没有错误。

我怎样才能知道发生了什么?

我最终使用了较低级别的gapi.client.request方法,该方法工作可靠。

var body= {"name": name, 
           "mimeType": "application/vnd.google-apps.folder",
           "parents": [parent.id]}

gapi.client.request({
  'path': 'https://www.googleapis.com/drive/v3/files/',
  'method': 'POST',
  'body': body
}).then(function(jsonResp,rawResp) {
    console.log(jsonResp)
    if (jsonResp.status==200) {
      callback(jsonResp.result)
    }
})

函数gapi.client.drive.files.create({...})返回一个承诺,所以不要传递回调函数,而是使用.then()块来执行承诺。

var fileMetadata = {
    'name': FILE_NAME,
    'mimeType': FILE_MIME_TYPE,
    // 'parents': [ parentFolderID ]
};

gapi.client.drive.files.create({
    resource: fileMetadata,
    fields: '*'
}).then(function(response) {
    if (response.status === 200) {
        var file = response.result;
        console.log(file);
    }
}).catch(function(error) {
    console.error(error);
);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM