如何使用 gmail API 的查询?设置属性 Q 似乎没有效果

Posted

技术标签:

【中文标题】如何使用 gmail API 的查询?设置属性 Q 似乎没有效果【英文标题】:How to use gmail API's Query? Setting property Q seems to be not effect 【发布时间】:2021-12-26 18:34:56 【问题描述】:

我正在使用 gmail API,除了查询,Q 属性之外,一切都在工作。

// service.Users.Messages.List("me").Q = $"subject:(my search term)";
var response = service.Users.Messages.List("me").Execute();

返回所有消息,无论前面的语句是被注释掉还是被执行。

我还用 fiddler 检查了请求,在 GET 请求中没有任何查询参数或其他内容的痕迹......与无查询请求相比没有区别。

【问题讨论】:

【参考方案1】:

您的请求的一部分似乎已被注释掉。第二个可选参数需要按以下方式设置。

var request = service.Users.Messages.List("me");
request.Q = "subject:test";
var response = request.Execute();

要弄清楚如何使用 Q 参数,最好在 Gmail 网络应用程序中对其进行测试。您发送的文本将完全相同

【讨论】:

非常感谢。请阅读OP“...无论前面的语句是否被注释掉或执行......”我想强调一下,用Fiddler进行调试没有注释掉或.Q =“......”版本之间的区别. ...但是...我发现,使用请求变量解决了我的问题。可能每个service.Users.Messages.List("me") 都会创建一个新的请求实例......所以正确的方法是获取一个,然后修改其状态,然后执行 使用 fiddler 进行测试与使用 .net 客户端库不同,该库最初创建于 10 多年前,当时的情况有所不同。遗憾的是,该库尚未更新以考虑当前使用 C# 和 .net 的最佳实践

以上是关于如何使用 gmail API 的查询?设置属性 Q 似乎没有效果的主要内容,如果未能解决你的问题,请参考以下文章

Gmail API - 元数据范围不支持“q”参数

使用 gmail API 设置用户签名 - 如何

访问未授予或过期 GMAIL API 和 Oauth2 / 如何使用 GMAIL API 和 GSuite 域设置电子邮件签名

如何设置凭据以从 GCE VM 命令行使用 Gmail API?

是否有可能使用gmail -API从一个特定的发件人处收到最近5封电子邮件

Gmail API ID 不工作,但线程 ID 工作