权限范围与权限
权限范围是你在连接助手时,在 OAuth 授权确认页面上授予的同意单位。已连接助手发出的每一次工具调用,都会针对其访问令牌中固化的权限范围进行检查——而不是重新读取你当前的账户角色——因此你在连接时批准的内容,会一直保持批准状态,直到你撤销它或用不同的选择重新连接。
完整列表
| 权限范围 | 允许的操作 | 是否默认授予? |
| --- | --- | --- |
| projects:read | 查看你的邮件项目及其设计 | 是 |
| projects:write | 创建和编辑邮件项目 | 是 |
| contacts:read | 查看你的联系人列表——始终可查看汇总信息;仅当某个工具明确请求时才能查看单条联系人记录 | 是 |
| contacts:write | 新增和更新联系人,管理取消订阅 | 是 |
| analytics:read | 查看营销活动结果、表单响应和订单 | 是 |
| campaigns:read | 查看发送历史和定时发送计划 | 是 |
| campaigns:send | 向你的联系人发送营销活动,并创建/启用定时发送计划 | 否——仅可自行选择开启 |
| templates:read | 使用你保存的模板和社区模板 | 是 |
| templates:write | 将项目保存为模板 | 是 |
| mailbox:read | 读取你已验证域名收到的邮件,以及支持工单 | 是 |
| mailbox:write | 回复域名邮箱对话和支持工单 | 是 |
| commerce:write | 将实物商品订单标记为已履行 | 是 |
| openid | 确认你的身份 | 是 |
| email | 共享你的账户邮箱地址(用于在支持该功能的平台上进行工作空间域名限制) | 是 |
| offline_access | 保持连接,无需每小时重新授权 | 是 |
为什么 campaigns:send 有所不同
这里的其他每一个权限范围,要么是只读的,要么是一次可以撤销的编辑操作(删除模块、移除联系人、还原模板)。向真实的人发送邮件,是连接器唯一一个无法撤回的操作。这就是为什么授权确认页面默认不勾选它,以醒目的警示颜色显示,并且——即使被授予之后——在真正发出任何邮件之前,依然需要经过安全性中所述的两步 prepare_send/confirm_send 流程。
你的账户角色如何限制权限范围
如果你在所连接的账户上是查看者(viewer),授权确认页面只会提供 *:read 权限范围,以及 openid/email/offline_access——这与查看者在 MailInApp 其他地方已经拥有的只读上限完全相同。**编辑者(editor)和所有者(owner)**可以授予完整列表;两者都无法授予的,是连接器根本没有暴露的能力——凭证轮换、SMTP/支付/域名设置,以及团队管理,无论权限范围如何,都无法从任何连接器工具触达,这与产品其他地方已有的编辑者权限排除范围一致。
一个连接代表哪个账户
一个连接在其整个生命周期内都只作用于一个账户。如果你属于多个公司——你自己的个人账户,加上你作为活跃成员所在的任何团队——授权确认页面会先让你选择其中一个,然后再显示权限范围。要在同一个助手中跨两个公司工作,意味着需要连接两次,这也会在连接页面上生成两条可独立撤销的记录。
这种账户绑定关系不仅在连接时检查一次,而是在每一次工具调用时都会重新检查:如果团队所有者将你移出团队,或者你的角色发生变化,该连接的下一次调用反映的都是你当前的身份,绝不会是你授予权限范围时的身份。