使用 Gmail REST API 或 Google Apps 脚本向 Gmail 邮件添加自定义星标

Sea*_*ean 7 gmail google-apps-script gmail-api

如何使用 Gmail REST 或 Apps API 为邮件添加自定义星标?是否有可用于 Gmail REST API 的备用标签名称?甚至可以从 Google Apps Script API 实现吗?

上下文
Gmail 用户可以更改他们的设置以自定义他们想要使用的星标。这些过去被称为“超级明星”,以引入它们的实验室功能命名。它在工作时继续出现,例如资产 URL:...superstars/star_lit_green_check3.png

自定义星星

 

Gmail REST API
Gmail REST API 不提供设置自定义星标的端点。您可以通过使用User.messages.modify端点添加或删除STARRED标签来加星标或取消星标。似乎没有任何文件表明还有哪些其他标签可用于全套星星。

使用 Gmail REST API 添加 STARRED 标签的结果

由于文档没有提供如何设置自定义星标的线索,因此使用 Gmail 检查网络请求为我们提供了线索。

检查网络请求显示超级明星标签表单值

“sslbl”遵循前缀所在的模式^ss_,类型s用于星形或c自定义类型,以及颜色的第一个字母。通过它们都给我们列出了:

星级:^ss_sy, ^ss_so, ^ss_sr, ^ss_sp, ^ss_sb, ^ss_sg
定制:^ss_cr, ^ss_co, ^ss_cy, ^ss_cg, ^ss_cb, ^ss_cp

稍后进行一些研究,您最终会得到:

不幸的是,REST API 无法识别这些内部标签。测试另一个内部 -^前缀标签也失败,表明您不能在这里使用这些。请注意CATEGORY_FORUMS上面屏幕截图中的标签是如何应用于消息的。相应的^smartlabel_group标签失败。

无法识别内部标签

~~

编辑:根据@TarunLalwani 的建议,我尝试User.messages.modify使用 URL 编码标签。对于^ss_sy,它被编码为%5Ess_sy。结果如下:

编码的内部标签也无法识别

~~

另一个障碍 - 使用Users.labels.list不包括任何与系统中的自定义星星或用户标签相关的标签。

我们可以从 Gmail REST API 使用什么标签名称?

 

Google Apps 脚本 Gmail API

此 API 不足:

  • 您只能为消息加标/取消星标
  • API 限制您获取用户创建的标签
  • 使用GmailApp.getUserLabelByName("^ss_sy")退货null

似乎没有办法访问内部标签。这个有限的 API 甚至可能吗?