当前位置: 首页 > 知识库问答 >
问题:

Gmail API-解析消息内容(Base64解码?)使用Javascript

沈德寿
2023-03-14

我正在尝试使用Gmail API获取用户的电子邮件,抓取消息主题和正文,然后将其显示在一个网页上。我会用它做其他事情,但这是我有困难的部分。我正在使用Angular.js。

下面是我的API调用:

function makeApiCall() {
  gapi.client.load('gmail', 'v1', function() {
    var request = gapi.client.gmail.users.messages.list({
      labelIds: ['INBOX']
    });
    request.execute(function(resp) {
      var content = document.getElementById("message-list");
      angular.forEach(resp, function(message) {
        var email = gapi.client.gmail.users.messages.get({'id': message.id});
        // var raw = email.payload.parts;
        // console.log(raw);
        content.innerHTML += JSON.stringify(email) + "<br>";
      })
    });
  });
}

因此gapi.client.gmail.users.messages.list返回我的消息数组及其ID号。这很管用。

gapi.client.gmail.users.messages.get({ }) 的调用将输出以下内容-{“b”:{“method”:“gmail.users.messages.get”,“rpcParams”:{},“transport”:{“name”:“GoogleAPI”}}}

不确定这是什么,但尝试获取消息有效负载(email.payload.parts),会导致undefined。那么,如何获取消息内容呢?

此外,我假设如果我可以获得消息内容,那么我将不得不对内容进行Base64解码以获得一些英文内容。这方面的任何建议也会有很大的帮助。我找到了https://github.com/kvz/phpjs,但由于我不确定如何获取消息内容以便尝试解码它们,所以不确定php.js在这方面是否有帮助。

共有1个答案

沈博涉
2023-03-14

取决于您的电子邮件的外观(单文本/纯文本部分?多文本/HTML部分?附件,等等?)您的email.payload中可能有也可能没有任何“部分”,相反,您将在“email.payload.body.data”(对于单部分消息)中找到您要查找的内容。这都是假设您使用默认格式(“full”)执行message.get。如果您希望在message.raw字段中获取整个电子邮件,并在针对您的语言的电子邮件库中处理它,则可以调用message.get(format=raw)。

 类似资料:
  • 问题内容: 我正在尝试使用Gmail API来获取用户的电子邮件,获取邮件的主题和正文,然后将其显示在网页上。我将用它来做其他事情,但这是我遇到的困难。我正在使用Angular.js。 这是我的API调用: 因此,返回我的消息数组及其ID号。很好 调用输出this- 。 不确定是什么,但尝试获取消息有效负载(),结果为。那么,如何获得消息内容? 另外,我假设如果我可以获取消息内容,那么我将不得不对

  • 问题内容: 我试图在春季连接一个messageSource以用于我的应用程序。它不起作用,给出此错误: org.springframework.context.NoSuchMessageException:在代码“ validation_required”下找不到语言环境“ en”的消息。 我的 applicationContext.xml 包含messageSource的以下定义: 我的邮件属性

  • 问题内容: 这是我的HTML来源 这是我获取内容的Java程序,它过滤HTML标记 是否有使用Jsoup而不是使用Java而不是Regex解析HTML内容的简便方法 有没有办法只获取所需的内容。所以在这里我只需要内容“项目2-222” 问题答案: 尝试使用jsoup轻松解析: 要了解更多信息,请访问Jsoup Docs

  • 介绍 Base64编码是用64(2的6次方)个ASCII字符来表示256(2的8次方)个ASCII字符,也就是三位二进制数组经过编码后变为四位的ASCII字符显示,长度比原来增加1/3。 使用 String a = "伦家是一个非常长的字符串"; //5Lym5a625piv5LiA5Liq6Z2e5bi46ZW/55qE5a2X56ym5Liy String encode = Base64.en

  • 问题内容: 我一直试图从PubNub解析此JSON消息,但没有任何运气: 有没有人知道如何在golang中解码这种复杂类型? 问题答案: 简短的答案是,您不能直接将非同类型的JSON数组(按您的示例)解组到golang结构中。 长答案是,您应该为PubNubMessage类型定义一个方法,该方法将JSON字符串解组为an ,然后使用类型断言来确保所需的格式并填充结构。 例如:

  • 我已经下载了json和我的对话档案。我坚持使用奇怪的编码。 json的例子: 应该是这样的: 我正试图这样反序列化它: 不幸的是,输出如下: 有人知道Facebook如何编码json吗?我尝试了几种方法,但没有结果。 谢谢你的帮助。