【发布时间】:2020-07-03 05:53:12
【问题描述】:
有没有办法在通过 API 的响应插入消息后获取消息 ID?
例如,我使用以下代码插入初始消息:
try:
message1 = service.users().messages().insert(userId='me', body=temp).execute()
print(f"{message1['id']} / {message1['threadId']}")
在此 API 调用中,id 和 threadId 是相同的,都是 16 个字符的字符串。
接下来,我插入回复。我进入 Gmail 以获取邮件 ID (<...@mail.gmail.com>),并在下一个 API 调用中进行如下设置:
message['subject'] = 'Re: test subject'
message['In-Reply-To'] = '<...@mail.gmail.com>'
message['References'] = '<...@mail.gmail.com>'
encoded_message = urlsafe_b64encode(message.as_bytes())
temp = {'raw': encoded_message.decode(), 'labelIds': ['UNREAD'], 'threadId': 'THREAD_ID_FROM_FIRST_CALL'}
try:
message1 = service.users().messages().insert(userId='me', body=temp).execute()
print(f"{message1['id']} / {message1['threadId']}")
这里的响应与上面的 message1['id'] 不同,但 message1['threadId'] 相同,因此它在 Gmail 中显示正确。但是,有没有一种方法可以轻松地从响应正文中获取消息 ID?我可以从message1['id'] 生成它吗?另一种方法是创建第二个 API 来查找message1['id'] 的消息,但我试图避免这种情况。谢谢。
【问题讨论】:
-
我无法理解
get Message ID from the response body。可以问一下具体情况吗?
标签: python gmail gmail-api google-api-js-client