Tôi đang cố sử dụng API Gmail để nhận email của người dùng, lấy chủ đề và nội dung thư rồi hiển thị nó trên trang web. Tôi sẽ làm những thứ khác với nó, nhưng đây là phần mà tôi gặp khó khăn. Tôi đang sử dụng Angular.js.Gmail API - Nội dung thư phân tích cú pháp (giải mã Base64?) Với Javascript
Đây là cuộc gọi API của tôi:
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>";
})
});
});
}
Vì vậy gapi.client.gmail.users.messages.list
trả về một mảng các thông điệp của tôi, với số ID của họ. Đó là làm việc.
Cuộc gọi đến gapi.client.gmail.users.messages.get({<specific message ID>})
kết quả đầu ra này - {"B":{"method":"gmail.users.messages.get","rpcParams":{},"transport":{"name":"googleapis"}}}
.
Không chắc chắn đó là gì, nhưng cố gắng tải trọng tải thư (email.payload.parts
), dẫn đến undefined
. Vì vậy, làm thế nào tôi có thể nhận được nội dung tin nhắn?
Ngoài ra, tôi giả định rằng nếu tôi có thể nhận được nội dung tin nhắn, tôi sẽ phải Base64 giải mã nội dung để lấy một số tiếng Anh ra khỏi nó. Mọi gợi ý cho điều đó cũng sẽ giúp ích rất nhiều. Tôi đã tìm thấy điều này: https://github.com/kvz/phpjs, nhưng vì tôi không chắc chắn làm thế nào để đi về nhận được nội dung tin nhắn để tôi có thể thử và giải mã chúng, do đó, không chắc chắn rằng php.js đó là một trợ giúp trong vấn đề đó.
Khi cố đăng nhập ' . payload.body.data' gapi.client.gmail.users.messages.get ({}), nó sẽ tạo ra 'lỗi chưa gặp: không thể đọc thuộc 'body' của undefined'. Tuy nhiên, khi thử nghiệm cuộc gọi phương thức .get trên tài liệu API của Gmail (tôi biết về liên kết mà bạn đã đăng) tại mục Dùng thử! phần của phần messages.get, tôi có thể xem nội dung trong trường tải trọng của đối tượng tin nhắn của tôi, vì vậy nó không được xác định. Mặc dù cho các bộ phận [], nó nói 'Đối ... text/plain, lĩnh vực này là empty.' Một thông điệp email cơ bản sẽ chứa văn bản đơn giản, đúng không? Vì vậy, có lẽ đó không phải là nơi tôi dự định đi .. –
eugene1832