【发布时间】:2014-09-04 20:52:18
【问题描述】:
我正在尝试使用 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>}) 的调用会输出这个 - {"B":{"method":"gmail.users.messages.get","rpcParams":{},"transport":{"name":"googleapis"}}}。
不确定那是什么,但尝试获取消息有效负载 (email.payload.parts) 时,结果为 undefined。那么,如何获取消息内容呢?
另外,我假设如果我可以获取消息内容,我将不得不对内容进行 Base64 解码以从中获取一些英文。对此的任何建议也会有很大帮助。我发现了这个:https://github.com/kvz/phpjs,但由于我不确定如何获取消息内容以便我可以尝试解码它们,所以不确定 php.js 在这方面是否有帮助。
【问题讨论】:
-
对于那些正在寻找 npm 包的人,试试这个npmjs.com/package/gmail-api-parse-message
标签: javascript angularjs base64 gmail-api