繁体   English   中英

尝试创建权限时出现 Google Drive API 权限错误

[英]Google Drive API Permissions error when attempting to create permissions

我正在尝试使用 google sheet api 创建一个 google 电子表格,然后使用 Google Drive API 更新工作表文件的权限以拥有一个新所有者。

即使我按照文档传递值,我也会收到以下错误:

创建权限时出错:<HttpError 400 when requesting https://www.googleapis.com/drive/v2/files/1xVPxNHQmbO2RSbzbTg7K3qLa8fURP3S_xkIStMVIpK8/permissions?alt=json返回“需要权限值字段”。 详细信息:“[{'domain': 'global', 'reason': 'required', 'message': 'Permission value field required', 'locationType': 'other', 'location': 'permission.value'} ]">

我在这里使用从谷歌文档中获取的以下代码片段:

def driveService(fileID, email):
    drive_service = build('drive', 'v2')
    insert_permission(drive_service, fileID, email, "user", "owner")


def insert_permission(service, file_id, email, perm_type, role):
  """Insert a new permission.

  Args:
    service: Drive API service instance.
    file_id: ID of the file to insert permission for.
    value: User or group e-mail address, domain name or None for 'default'
           type.
    perm_type: The value 'user', 'group', 'domain' or 'default'.
    role: The value 'owner', 'writer' or 'reader'.
  Returns:
    The inserted permission if successful, None otherwise.
  """
  
  new_permission = {
      'type': perm_type,
      'role': role,
      'value': email
  }
  
  try:
    return service.permissions().insert(
        fileId=file_id, body=new_permission).execute()
  except errors.HttpError as error:
    print('An error occurred while creating permission: %s' % error)
  return None

试试这个让我知道如果它不起作用我会在明天制作一个完整的样本。

permission1 = {
    'type': 'user',
    'role': 'writer',
    'emailAddress': '###',  # Email of Google account.
}
service.permissions().create(fileId=fileId, body=permission1).execute()
permission2 = {
    'type': 'anyone',
    'role': 'writer',
}
service.permissions().create(fileId=fileId, body=permission2).execute()

暂无
暂无

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

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