Gmail API-使用Java脚本解析邮件内容(Base64解码?)
我正在尝试使用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({<specific message ID>})
输出this-
{"B":{"method":"gmail.users.messages.get","rpcParams":{},"transport":{"name":"googleapis"}}}
。
不确定是什么,但尝试获取消息有效负载(email.payload.parts
),结果为undefined
。那么,如何获得消息内容?
另外,我假设如果我可以获取消息内容,那么我将不得不对Base64进行解码以从中获取一些英语信息。任何对此的建议也将有很大帮助。我发现了这一点:https
:
//github.com/kvz/phpjs,但是由于我不确定如何获取消息内容,以便我可以尝试对其进行解码,所以不确定是否该php.js在这方面有帮助。
回答:
根据您的电子邮件的外观(单个文本/纯文本部分,带有文本/
html的多部分文本,附件等?),您的email.payload中可能有也可能没有任何“部分”,取而代之的是在“
email.payload.body.data”中查找(用于单部分邮件)。所有这些都假设您正在使用默认格式(“完整”)执行message.get。如果您想在message.raw字段中获取整个电子邮件,并在电子邮件库中使用您的语言进行处理,则可以调用message.get(format
= raw)。
有关更多信息,请查看https://developers.google.com/gmail/api/v1/reference/users/messages上
“消息”的“正文”和“部件[]”字段文档。
以上是 Gmail API-使用Java脚本解析邮件内容(Base64解码?) 的全部内容, 来源链接: utcz.com/qa/411202.html