在PyDrive中使用InsertPermission()的可选查询参数

时间:2017-04-16 13:32:21

标签: python google-api google-drive-api google-api-python-client pydrive

是否可以在PyDrive中使用InsertPermission()发送可选查询参数的值? PyDrive文档似乎忽略了如何处理切换可选参数,如sendNotificationEmails

我需要为特定用户而不是任何人添加文件权限而不发送通知电子邮件,默认情况下sendNotificationEmails设置为True

我考虑过将files.py的功能定义修改为以下内容,但我不确定这是否有效并且之前没有编辑过库:

def InsertPermission(self, new_permission):
  """Insert a new permission. Re-fetches all permissions after call.

  :param new_permission: The new permission to insert, please see the official Google Drive API guide on permissions.insert for details.

  :type new_permission: object

  :return: The permission object.
  :rtype: object
  """
  file_id = self.metadata.get('id') or self['id']
  try:
    permission = self.auth.service.permissions().insert( fileId=file_id, body=new_permission, sendNotificationEmails=False).execute(http=self.http)
  except errors.HttpError as error:
    raise ApiRequestError(error)
  else:
    self.GetPermissions()  # Update permissions field.

  return permission

1 个答案:

答案 0 :(得分:1)

现在可以指定可选参数作为file1.InsertPermission({'type': 'user', 'value': 'insert@email.here', 'role': 'reader'}, sendNotificationEmails=False) 函数的附加参数,如下所示:

pip install git+https://github.com/googledrive/PyDrive.git@development#egg=PyDrive

请参阅官方文档here了解所有可用参数。

注意:您目前(2017年4月)需要为此功能安装库的开发版本。这个版本的PyDrive可以这样安装:

  RNFetchBlob.fs.readStream(
        ('/Users/UserName/Project/documents/' + this.state.name),
        'base64',
        4095)
      .then((ifstream) => {
        ifstream.open();
        ifstream.onData((chunk) => {
          this.setState({data: chunk});
        })

        ifstream.onError((err) => {
          console.log('oops', err)
        })

        ifstream.onEnd(() => {
          this._decodeData();
        })
      });