Tôi đã thiết lập thành công Google Pub/Sub để sử dụng tính năng Gmail API Watch như được mô tả ở đây: https://developers.google.com/gmail/api/guides/push để xem nhãn INBOX trong tài khoản gmail của tôi.Gmail API users.watch - không có chi tiết cho historyId
Khi tin nhắn mới đến tôi ngay lập tức nhận được thông báo push ở định dạng hợp lệ như:
{ message:
{ data: '.......',
attributes: {},
message_id: '1248700053943' },
subscription: '.....' }
Sau khi tôi base64decode dữ liệu tôi nhận được email và historyId. Sau đó, như được đề xuất, tôi yêu cầu API gmail.users.history.list (thông qua bảng điều khiển API) với startHistoryId được đặt thành historyId từ thông báo đẩy. Và sau đó chỉ nhận được phản hồi trống mà không có bất kỳ chi tiết nào:
GET https://www.googleapis.com/gmail/v1/users/me/history?startHistoryId=4658879&key={YOUR_API_KEY}
200 OK
- Show headers
{
"historyId": "4658894"
}
Vì vậy, lịch sửCó vẻ như không hợp lệ. Có vẻ như người dùng Gmail.watch API không hoạt động bình thường và gửi sai historyId hoặc tôi chỉ thiếu một cái gì đó?
Bạn có chắc là bạn đang sử dụng đúng địa chỉ email trong ứng dụng thử nghiệm của mình như trong Trình khám phá API không? – Tholle
@Tholle, Có. Ngoài ra, nếu tôi trừ một chút từ historyId được cung cấp, giả sử, không phải 4658879 nhưng 4658800 và sử dụng nó như startHistoryId tôi có thể lấy dữ liệu về thư mới ở đâu đó ở giữa mảng phản hồi. Nó không chính xác, và hoạt động như một phép thuật, tôi cần một cách đơn giản để lấy dữ liệu chính xác bằng một histroyId từ một tin nhắn push. –