我正在使用gmail进行一个项目,我需要在线程中读取一条消息来获取一些信息(比如消息正文和底部部分)。
所以我可以访问我的收件箱,一切都准备好了,准备好工作了。但是我仍在为下一步而奋斗:我唯一需要找到我的消息/线程的信息是你可以在gmail url (例如:*)上找到的唯一id。
我阅读了google的golang文档,我找不到任何方法来获取线程或消息,只有这些信息。我说错了吗?
如果没有,我能解决这个问题的办法是什么?报废?去取回messageID?或者还有别的图书馆我可以用吗?
我尝试使用以下功能:
message, err := srv.Users.Messages.Get(user, uniqueID).Do()
if err != nil {
return fmt.Sprintf("Unable to retrieve message: %v", err)
}`
和
`
thread, err := srv.Users.Threads.Get(user, uniqueID).Do()
if err != nil {
return fmt.Sprintf("Unable to retrieve thread: %v", err)
}`
但是uniqueID对它们不起作用,他们期待的是MessageID或ThreadID (当您单击Gmail中的消息中的“显示原始”时可以找到的ID)。
Unable to retrieve message: googleapi: Error 400: Invalid id value, invalidArgument
欢迎任何建议!^^谢谢
发布于 2022-10-26 22:33:10
如果您已经使用了threadId或id (使用方法users.messages.list获得的MessageID或ThreadID ),则您的案例使用方法users.messages.get获取有效负载字段下的“MessageID”。
它以这种格式显示:
{
"name": "Message-ID",
"value": "\u003cMessage-ID\u003e"
},要获得实际的消息ID( Show original下的消息ID),您需要在值的开头剪裁\u003c,在值的末尾修剪\u003e。
可能是这样的:
gmailMessageResposne, _ := gmail.Service.Users.Messages.Get("user@email.com", "rfc822msgid").Format("full").Do() 参考:
https://stackoverflow.com/questions/74207841
复制相似问题