我想列出带有特定标签的消息。因此,我使用了google的Go Quickstart代码并将作用域设置为gmail.MailGoogleComScope。
使用以下代码可以获得带有标签“收件箱”的所有消息的列表。
mes, err := srv.Users.Messages.List(user).LabelIds("INBOX").Do()但是,当我将“收件箱”替换为“测试”时,我会得到错误:
可以检索消息。错误400:无效标签:测试,invalidArgument退出状态1
还有一个有名字测试的标签。我做错了什么?
发布于 2017-03-28 00:12:34
“收件箱”的标签名称和ID是相同的。但是,标签名和标签ID之间有一个不同的情况。您有两个方法来检索标签的消息列表。下面的脚本假设使用谷歌的快速启动。
1.检查标签ID并检索消息列表
检索标签名和ID :
mes, err := srv.Users.Labels.List(user).Do()
if err != nil {
log.Fatalf("Error: %v", err)
}
for _, e := range mes.Labels {
fmt.Println(e.Name + ", " + e.Id)
}使用labelID 检索消息列表
mes, err := srv.Users.Messages.List(user).LabelIds(labelID).Do()
if err != nil {
log.Fatalf("Error: %v", err)
}
for _, e := range mes.Messages {
fmt.Println(e.Id)
}2.使用"Q“检索消息列表
mes, err := srv.Users.Messages.List(user).Q("label:labelname").Do()
if err != nil {
log.Fatalf("Error: %v", err)
}
for _, e := range mes.Messages {
fmt.Println(e.Id)
}可以直接检索标签名称的消息列表。"Q“的参数与Gmail搜索框相同。
参考资料:
https://stackoverflow.com/questions/43057478
复制相似问题