【问题标题】:How can I get 'payload' property from the Messages list? Gmail API如何从消息列表中获取“有效负载”属性? Gmail API
【发布时间】:2017-04-14 22:21:33
【问题描述】:

我是 node 的新手,我想获取有关我的 gmail 消息的信息,例如谁编写了消息和文本。 我按照快速入门示例编写以下代码,但输出中只有 'id' 和 'threadId' 字段。

function listMessages(auth) {
    var gmail = google.gmail('v1');
    gmail.users.messages.list({
        auth: auth,
        userId: 'me'
    }, function(err, response) {
        if (err) {
            console.log('The API returned an error: ' + err);
            return;
        }
        var messages = response.messages;
        if (messages.length == 0) {
            console.log('No messages found.');
        } else {
            console.log('Messages:');
            for (var i = 0; i < messages.length; i++) {
                var message = messages[i];
                console.log(message);
            }
        }
    });
}

有人可以解释一下吗?谢谢。

【问题讨论】:

    标签: node.js gmail-api


    【解决方案1】:

    messages.list() API 根据设计仅返回消息 ID 和线程 ID。如果您需要获取这些消息的详细信息,您需要进行另一个 API 调用 messages.get() 以获取每条消息的具体详细信息。

    API 参考: https://developers.google.com/gmail/api/v1/reference/users/messages/get

    虽然这可行,但您可能想看看 GMail 的批处理操作,它允许在一次调用中获取邮件的详细信息(尽管有限制)。

    Google 的批处理指南: https://developers.google.com/gmail/api/guides/batch

    类似的问题已在 SO: 处得到解答:

    【讨论】:

      【解决方案2】:
      function getMessage(userId, messageId, callback) {
        var request = gapi.client.gmail.users.messages.get({
          'userId': userId,
          'id': messageId
        });
        request.execute(callback);
      }
      

      将“me”添加为userId,并在messageId 字段中添加您的消息ID。其他字段是可选的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-05
        • 2021-01-21
        • 1970-01-01
        • 2018-08-12
        • 1970-01-01
        相关资源
        最近更新 更多