我正在使用Gmail API来获取最近10封电子邮件的(发件人)电子邮件地址。
网址:https://developers.google.com/gmail/api/v1/reference/users/messages/list
但是Users.messages: list
API返回消息资源(仅包含电子邮件ID)。
为了获取发件人的电子邮件地址,我必须为每个消息资源进行一个Users.messages: get
API调用,这会增加加载时间。
如何在Users.messages: list
API的响应中获取发件人的电子邮件地址以及电子邮件ID?
或者以某种方式可以通过一个API调用获取最后10个发件人的电子邮件地址?
我当前的代码示例:
$params = [
'labelIds' => 'INBOX',
'maxResults' => 10
];
$emails = $service->users_messages->listUsersMessages('me', $params);
foreach ($emails->getMessages() as $email) {
$email_data = $service->users_messages->get('me', $email->id, ['format' => 'full']);
}
答案 0 :(得分:0)
如何在Users.messages:list API的响应中获取发件人的电子邮件地址以及电子邮件ID?
您不能使用Users.messages: get
来检索此信息。
根据Users.messages: list
文档中有关响应资源的属性:
messages[]
:消息列表。。请注意,每个消息资源仅包含一个id和一个threadId。可以使用messages: get
方法获取其他消息详细信息。
Users.message
resource页面提供了有关完整响应的更多信息,该信息可以从messages: get
中检索:
{
"id": string,
"threadId": string,
"labelIds": [
string
],
"snippet": string,
"historyId": unsigned long,
"internalDate": long,
"payload": {
"partId": string,
"mimeType": string,
"filename": string,
"headers": [
{
"name": string,
"value": string
}
],
"body": users.messages.attachments Resource,
"parts": [
(MessagePart)
]
},
"sizeEstimate": integer,
"raw": bytes
}
为了获取消息ID和发件人电子邮件地址,您需要进行Users.messages: list
调用以获取电子邮件ID,然后对每个消息ID进行Users.messages: get
请求以获取发件人电子邮件。 由于没有Users.messages: batchGet
方法,因此无法解决此问题。
我知道这通常是个坏消息,但我希望这对您有帮助!