尝试通过Google Drive API创建权限时出现错误“需要类型字段”

问题描述 投票:0回答:1

我修改了来自Google Drive API Quickstart for Node.js的代码,发现here尝试为Google云端硬盘中的现有文件创建新权限。

无论我在代码中做了什么改变,我总是得到相同的回答说The permission type field is required,即使我已经通过resource指定它,如npm googleapis client library的文档和我发现的其他示例中所述。

这只是不起作用还是我错过了一些明显的东西?

Code to update permission

function updateFilePermissions(auth) {

  var drive = google.drive({
    version: 'v3',
    auth: auth
  });

  var resourceContents = {
    role: 'writer',
    type: 'user',
    emailAddress: '[email protected]'
  };

  drive.permissions.create({

    resource: resourceContents,
    fileId: aValidFileId,
    sendNotificationEmail: false,
    fields: 'id',

  }, function(err, res) {

    if (err) {

      // Handle error...
      console.error(err);

    } else {

      console.log('Permission ID: ', res.id);

    }

  });

}

Response from Google Drive API

code: 400,
errors: 
 [ { domain: 'global',
     reason: 'required',
     message: 'The permission type field is required.',
     locationType: 'other',
     location: 'permission.type' } ]
node.js google-drive-sdk
1个回答
1
投票

对于那些仍在寻找答案的人来说,需要将其格式化为:

  {
          fileId: fieldID, // String
          resource": {
            role: putRoleHere, //String
            type: putTypeHere //String
          }

Google的API正在使用Axios作为HTTP客户端,因此在使用他们的方法时,它会自动为您字符串化:)

© www.soinside.com 2019 - 2024. All rights reserved.