提问者:小点点

在Gmail邮件列表中获取发件人电子邮件地址API


我正在使用GmailAPI来获取最近10封电子邮件的电子邮件地址。URL:https://developers.google.com/gmail/api/v1/reference/users/messages/list

但是API返回消息资源(只包括电子邮件ID)。为了获取发件人的电子邮件地址,我必须为每条消息调用一个用户消息:获取API资源,这增加了加载时间。

我如何获取发件人的电子邮件地址以及电子邮件ID的响应User. message:listAPI?
或者不知何故,我可以在一次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']);
}

共1个答案

匿名用户

我怎么能获取电子邮件地址的发件人随着电子邮件ID在用户的响应:列表API?

不能,需要使用User. message:get来检索此信息。

根据User. message:list留档有关响应资源的属性:

消息[]:消息列表。请注意,每个消息资源仅包含一个id和一个threadId。可以使用消息:get方法获取其他消息详细信息。

User. message资源页面提供了有关能够从消息中检索的完整响应的更多信息: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. message:list调用以获取电子邮件ID,然后对每条消息进行User.message:get请求ID以获取发件人的电子邮件。由于没有User.message:batchGet方法,不幸的是没有办法解决这个问题。

  • 用户信息:列表|GmailAPI|Google Developers
  • 用户消息:获取|GmailAPI|Google Developers
  • 用户消息|GmailAPI|Google Developers