如何将多个过滤器应用于gmailapi的url中的查询



我通过Oracle数据库使用HTTP请求从Gmail API中提取数据。在Oracle中,您可以将所有筛选器应用于请求的URL或其正文。这适用于简单的请求,例如下面的URL,用于请求用户收件箱中未读邮件的列表:https://gmail.googleapis.com/gmail/v1/users/me/messages?maxResults=500&q=是:未读&labelIds=收件箱

如果我尝试像下面的URL中那样向URL(或LabelId(添加多个筛选器,我会从请求中得到错误响应:https://gmail.googleapis.com/gmail/v1/users/me/messages?maxResults=500&q=是:未读的newer_than:2d&labelIds=收件箱

我已经尝试了多次迭代;q=";部分类似于使用双引号,但我在1过滤器之外尝试的任何操作都会返回错误响应。

文档位于https://developers.google.com/gmail/api/guides/filtering举个过滤的例子,但这显然对我不起作用:https://www.googleapis.com/gmail/v1/users/me/messages?q=in:sent之后:2014/01/01之前:2014/02/01

我试着把";是:未读;过滤并将其添加为标签,但当我试图在URL请求中使用多个labelId时,我遇到了类似的问题。只使用labelIds=INBOX很好,但使用labelIds=INBOX、UNREAD或带有引号和方括号的各种迭代都会返回错误响应。

如何在请求的URL中使用多个筛选器(和/或多个labelId(?

谢谢,Dick

问题似乎出在q部分中每个过滤器之间的空间上。如果我为空间添加%20,它就起作用了。

例如;https://gmail.googleapis.com/gmail/v1/users/me/messages?maxResults=500&q=是:未读的newer_than:2d&labelIds=INBOX";不会起作用,但";https://gmail.googleapis.com/gmail/v1/users/me/messages?maxResults=500&q=是:未读%20newer_than:2d&labelIds=INBOX";将起作用。

最新更新