我想将以下用例实现为 Chrome 扩展:
- 用户访问 Gmail
- 扩展程序检查当前电子邮件正文中的关键字
- 如果存在关键字,则添加并保存gmail过滤器(添加标签,存档,此处的详细信息并不重要)
第一部分听起来更容易:有谷歌邮箱API https://developers.google.com/gmail/api/一起工作,甚至gmail.js https://github.com/KartikTalwar/gmail.js/tree/master项目应该会让事情变得更容易。
添加过滤器似乎要困难得多。有电子邮件设置 API 正是我想要的 https://developers.google.com/admin-sdk/email-settings/#creating_a_filter但我相当确定它只能由企业帐户使用(自定义电子邮件域,不适用于 gmail.com)。我希望解决方案更加通用。
我想到的一件事是使用浏览器自动化 - 看到触发关键字后,脚本会自动单击“添加过滤器”链接,等待 AJAX,设置过滤器参数并确认。
模拟用户活动的示例如下这个答案 https://stackoverflow.com/questions/3615149/how-to-add-automatic-click-feature-in-chrome-extension
这可能发生在弹出窗口后面的 Gmail 页面(“请稍候,调整过滤器”)或后台选项卡中,以防止其干扰用户的流程。不过,这对我来说似乎是一个丑陋的解决方法。
我是否缺少更直接或更好的方法?
经过更多的实验和恢复旧的 github 项目后,我发现只需从当前会话向 gmail 发出特定的 POST 消息即可为登录用户设置过滤器。
我不完全理解此请求中使用的参数(如果有人有更好的信息,请分享),但我找到了一个示例代码 https://github.com/GrexIt/Gmail-Filters-Js-api这很有帮助。
gmail.js 社区广泛讨论的第二个问题是 Gmail 安全策略将阻止您注入自己的脚本。这可以通过中所示的方法绕过这个样板项目 https://github.com/KartikTalwar/gmail-chrome-extension-boilerplate
我编译了这些解决方案来解决我的特定用例。这是一个示例项目 https://github.com/zencodism/gmail-chrome-extension-autofilter使用我的解决方案,它应该开箱即用 - 如有疑问,请参阅自述文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)