Google Drive v3 API设sendNotificationEmail=False仍发通知如何解决
Google Drive创建权限关闭通知邮件的正确配置
失效原因
你之前的配置不生效,核心是参数传递位置错误:sendNotificationEmail(v3版本)/sendNotificationEmails(v2版本)不属于权限资源本身的字段,不能放在构造权限的new_permission请求体字典中传递,必须作为调用权限创建接口时的独立查询参数传入,放在请求体里的配置会被接口直接忽略。
正确代码示例
Google Drive API v3 版本
# 权限资源体仅保留权限本身的属性,不要加通知相关参数 new_permission = { 'role': role, 'type': 'user', 'emailAddress': '客户邮箱地址' } # 调用创建接口时,将通知开关作为独立参数传入 permission = service.permissions().create( fileId='目标文件夹的ID', body=new_permission, sendNotificationEmail=False, # 在此处传参才会生效 supportsAllDrives=True # 操作共享盘位置的文件夹时必须加该参数 ).execute()
Google Drive API v2 版本
v2版本创建权限用insert方法而非create,通知参数名为复数形式,同样要作为接口参数传入,不能放在请求体中:
new_permission = { 'role': role, 'type': 'user', 'value': '客户邮箱地址' } permission = service.permissions().insert( fileId='目标文件夹的ID', body=new_permission, sendNotificationEmails=False, # 注意参数名是复数 supportsAllDrives=True ).execute()
补充说明
- 如果配置的是「链接可访问」「组织内可访问」这类非定向到具体用户账号的权限,接口本身不会发送通知邮件,不需要额外配置该参数。
- 只有给指定邮箱账号单独授予权限时,才会触发通知发送逻辑,此时上述参数配置才会生效。
内容的提问来源于stack exchange,提问作者Ranchoddas shyamaldas chanchad
相关产品推荐
相关产品推荐

