我正在使用服务帐户和域范围委派来访问客户端域下的所有电子邮件帐户,其中包含只读范围https://www.googleapis.com/auth/gmail.readonly在邮件get请求中,我使用格式选项“metadata”with fields = 'payload / headers',它只返回电子邮件标题,但不返回邮件的内容。
有没有办法限制我的应用只访问元数据,而不是限制电子邮件的内容?这将确保我的应用程序无法读取敏感的电子邮件内容信息,并且只能访问元数据。
谢谢!
答案 0 :(得分:5)
现在,Gmail API(截至2016年11月)确实支持gmail.metadata范围! C.F. https://developers.google.com/gmail/api/auth/scopes
它允许访问电子邮件标题,包括主题,而不包含电子邮件数据。使用format = METADATA和format = MINIMAL调用message.get()将使用该范围,但不能,例如,format = FULL或format = RAW。
答案 1 :(得分:3)
将您的范围设置为https://www.googleapis.com/auth/gmail.metadata
。
见https://developers.google.com/gmail/api/auth/scopes
https://www.googleapis.com/auth/gmail.metadata
读取资源元数据,包括标签,历史记录和电子邮件标题,但不包括邮件正文或附件
答案 2 :(得分:0)
您只能通过指定'format'=>'metadata'和'metadataHeaders'=>数组(您想要接收的标题,不包括其他标题)来获取指定的标题。在下面的PHP中检查示例获取请求:
$service->users_messages->get($userId, $message->id,array('format'=>'metadata', 'metadataHeaders'=>array('From','To')));
上面的代码只会显示From和To标题,并且不会显示Subject标题。
希望这有帮助。