首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google go-client:列出消息w/ label和获取头字段

问Google go-client:列出消息w/ label和获取头字段
EN

Stack Overflow用户
提问于 2017-03-27 22:26:41
回答 1查看 1.1K关注 0票数 3

我想列出带有特定标签的消息。因此,我使用了google的Go Quickstart代码并将作用域设置为gmail.MailGoogleComScope。

使用以下代码可以获得带有标签“收件箱”的所有消息的列表。

代码语言:javascript
复制
    mes, err := srv.Users.Messages.List(user).LabelIds("INBOX").Do()

但是,当我将“收件箱”替换为“测试”时,我会得到错误:

可以检索消息。错误400:无效标签:测试,invalidArgument退出状态1

还有一个有名字测试的标签。我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-28 00:12:34

“收件箱”的标签名称和ID是相同的。但是,标签名和标签ID之间有一个不同的情况。您有两个方法来检索标签的消息列表。下面的脚本假设使用谷歌的快速启动。

1.检查标签ID并检索消息列表

检索标签名和ID :

代码语言:javascript
复制
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 检索消息列表

代码语言:javascript
复制
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“检索消息列表

代码语言:javascript
复制
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搜索框相同。

参考资料:

  1. Users.messages:列表https://developers.google.com/gmail/api/v1/reference/users/messages/list
  2. Users.labels:列表https://developers.google.com/gmail/api/v1/reference/users/labels/list
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43057478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档