在 gmail api 中搜索特定的 in-reply-to 标头
Posted
技术标签:
【中文标题】在 gmail api 中搜索特定的 in-reply-to 标头【英文标题】:Search for specific in-reply-to header in gmail api 【发布时间】:2017-07-13 19:11:04 【问题描述】:我正在使用GMail Api,如果他们有带有标题的消息,我想查询用户消息
In-Reply-To: <specificMessageID@service.com>
我一直无法弄清楚如何做到这一点。
我猜方法应该是messages.list
,但没有类似的查询:rfc822msginreplyto:
如果您认为没有这种可能性,最好获取最后 100 封用户的电子邮件并手动检查?
【问题讨论】:
我认为 Gmail 和 Gmail API 都没有这个功能。在Search Operators list中找不到。 好的,感谢您的回答,所以我想唯一的选择是手动获取最后一封电子邮件。 我会 list messages 和q = rfc822msgid:msgid@example.com
然后 get the thread 看看回复是什么。
【参考方案1】:
你可以list messages 和q = rfc822msgid:msgid@example.com
然后get the thread 来查看回复是什么。
【讨论】:
【参考方案2】:Message.list 返回Users.messages 的列表
Message.list 确实有一个 q 方法。
q string 只返回匹配指定查询的消息。支持 与 Gmail 搜索框相同的查询格式。例如, “来自:someuser@example.com rfc822msgid:是:未读”。参数不能 使用 gmail.metadata 范围访问 api 时使用
所以你可以通过在 gmail 中搜索来测试它,如果你可以让它在那里工作,它应该可以通过 api 工作。
回复至:
我对此进行了测试,它似乎可以工作。
我不确定您使用的是哪个客户端库,但它们中的大多数在创建允许您添加 q 参数的请求时都有一个可选参数选项。
更新:
测试您在 Gmail 搜索中的查询
您发送的请求必须准确,您不能在末尾添加空格或删除空格:
回复至:
例子:
https://www.googleapis.com/gmail/v1/users/me/messages?access_token=XXXX&q=In-Reply-To:%20%3Cdddi@gmail.com%3E
回应
"messages": [
"id": "152377f1efe8d069",
"threadId": "152376d14b187e44"
],
"resultSizeEstimate": 1
在页面底部使用 try me。
【讨论】:
我已经对此进行了测试,不幸的是没有得到任何结果。我的查询是In-Reply-To:CAFs+qjWz8oGLhFK9GzoXAguuJrbNMGy9cEXqJ987v8XeofZOrA@mail.gmail.com
您在“:”之后缺少空格您是否使用 google Drive Search 表单对此进行了测试?我在驱动器和它工作的 api 中都对其进行了测试
我已经测试了In-Reply-To:id@s.com
和In-Reply-To: id@s.com
,但仍然没有得到任何结果。这将是完美的解决方案,但它似乎对我不起作用。我使用: [developers.google.com/gmail/api/v1/reference/users/messages/… APIs Explorer) 结果是 resultSizeEstimate:0;再次查询是In-Reply-To: CAA5K+n8OeqXn-pcQXGEvt6a7iMKC16w_jwP8fndrwKOLqy-gEA@mail.gmail.com
,我知道我肯定在收件箱中有带有此标题的消息。
您在电子邮件地址中缺少“”。请在 Gmail 搜索中对此进行测试。然后复制字符串就容易多了。
好吧,你是对的。我将忽略消息 ID,只在线程内获取消息。如果发件人不是帐户的所有者(来自标头!= your.email),则只需遍历它们。这应该够了吧。对我来说最简单的解决方案。以上是关于在 gmail api 中搜索特定的 in-reply-to 标头的主要内容,如果未能解决你的问题,请参考以下文章
在一个用 JSON 填充的 NSArray 中搜索特定的标题