【问题标题】:Error: The permission type field is required when creating permission using Google Drive API错误:使用 Google Drive API 创建权限时需要权限类型字段
【发布时间】:2020-02-15 06:46:01
【问题描述】:

我正在尝试使用 Google Drive API 共享文件。我有文件 ID 和共享文件的电子邮件地址,但我不断收到错误消息“需要权限类型字段”。我已按照 API 指南上的所有说明进行操作,但似乎没有任何解决办法。

我正在调用以下函数,但我不知道为什么它不起作用。有人可以看看我做错了什么吗?

function shareFile(id, email) {
    gdapi.permissions.create({
        fileId: id,
        resources: {
            role: "reader",
            type: "anyone",
            emailAddress: email
        }
    });
}

谢谢!

【问题讨论】:

    标签: node.js google-drive-api


    【解决方案1】:
    • 您想使用 Node.js 的 googleapis 创建具有 role: "reader"type: "anyone" 的权限。
    • 您已经能够使用 Drive API 在 Google Drive 中获取和放置文件的值。
    • 脚本中的gdapi 可用于创建对 Google Drive 中文件的权限。

    如果我的理解是正确的,那么这个答案呢?

    修改点:

    • resources 未使用。请将resources修改为resourcerequestBody
    • 如果要使用role: "reader"type: "anyone",请删除emailAddress: email

    当以上几点反映到你的脚本中时,它变成如下。

    修改脚本:

    function shareFile(id, email) {
        gdapi.permissions.create({
            fileId: id,
            resource: {  // Modified
                role: "reader",
                type: "anyone",
                // emailAddress: email  // Modified
            }
        });
    }
    

    注意:

    • 在这种情况下,请使用最新版本的 googleapis。目前阶段,最新版本为googleapis@47.0.0
    • 如果要将role: "reader"emailAddress: email,请修改如下。

      function shareFile(id, email) {
          gdapi.permissions.create({
              fileId: id,
              resource: {  // Modified
                  role: "reader",
                  type: "user",  // Modified
                  emailAddress: email
              }
          });
      }
      

    参考资料:

    如果我误解了您的问题并且这不是您想要的方向,我深表歉意。

    【讨论】:

    • 非常感谢!我遇到的问题是我放了“资源”而不是“资源”,而且我放了“任何人”而不是“用户”。这完全解决了我的问题。 :)
    • @Justin Chang 感谢您的回复。很高兴您的问题得到解决。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-02
    • 1970-01-01
    相关资源
    最近更新 更多