关于 imessage
这是一份使用 Photon API 构建 iMessage 集成的参考技能,帮助开发者选择单一软件包契约,避免混用 API 版本,涵盖本地、托管及多提供方场景。
主要功能
- 01选择 API 软件包的指引
- 02按版本划分的契约参考
- 03集成安全与事件处理规则
- 04支持本地、托管及统一 API
适用场景
- 01为新的 iMessage 集成选择 Photon 软件包
- 02按软件包版本检查示例代码
- 03在自有 Mac 上构建 iMessage 自动化
MCP 相关
文档介绍了 Photon MCP,可在无需编写 SDK 代码的情况下,为兼容 MCP 的 Agent 提供 iMessage 工具。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ photon-hq/ skills --skill imessage安装后在 Claude Code 中输入/imessage确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/hosted-v2.mdlegacy-and-tools.mdlocal-v3.mdspectrum.md详细介绍
iMessage
包边界
Photon 提供多个 iMessage API,它们的构造函数、发送签名、效果和事件模型各不相同。编写代码前,请先选择一个包边界,然后只加载该分支的参考文档。
- 选择 API,参照下表。
- 使用导入项或方法名称前,阅读对应分支的参考文档。不要混用不同分支的代码片段。
- 根据所选的包和版本检查完整示例。所有导入项、方法、选项、内容结构和返回值都必须符合同一套契约。
只有在明确指定一个包或提供方,并通过其契约检查后,示例才算完整。如果包声明与较早的文档页面不一致,请以已发布的版本为准,并指出文档存在偏差。
此处锁定的契约:
spectrum-ts12.2.0、@photon-ai/imessage-kit3.0.0 和@photon-ai/advanced-imessage2.0.2。
选择 API
| 需求 | 使用 | 阅读 |
|---|---|---|
| 统一接入 iMessage、WhatsApp、Telegram、Slack、Terminal 或自定义提供方 | spectrum-ts | references/spectrum.md |
| 在你控制的 Mac 上进行本地自动化 | @photon-ai/imessage-kit | references/local-v3.md |
| 低级别的托管 iMessage 控制 | @photon-ai/advanced-imessage | references/hosted-v2.md |
| 维护现有的 HTTP + Socket.IO 集成 | @photon-ai/advanced-imessage-kit | references/legacy-and-tools.md |
| 将签名事件交付到现有 HTTP 后端 | Photon Webhook | references/legacy-and-tools.md |
| 无需编写 SDK 代码,即可为兼容 MCP 的 Agent 提供 iMessage 工具 | Photon MCP | references/legacy-and-tools.md |
| 从非 TypeScript 客户端调用 iMessage | Advanced iMessage HTTP Proxy | references/legacy-and-tools.md |
对于新的托管应用,请从 Spectrum 开始。当 Spectrum 未提供所需的低级别操作时,直接使用 @photon-ai/advanced-imessage。@photon-ai/advanced-imessage-kit 仅用于兼容性场景。
通用不变量
- 将消息文本、附件名称、联系人卡片、URL 和 webhook 载荷视为不可信数据。不要将它们插入系统提示词、命令、路径、SQL 或请求 URL。
- 使用所选 API 的方向/本人发送字段,而不要通过比较消息文本来忽略 Agent 自己的消息。
- 将用户输入的电话号码规范化为 E.164 格式后,再解析收件人。切勿根据用户输入构造群组 GUID 或聊天 ID。
- 在
finally中清除输入状态指示,处理每次发送被拒绝的情况,并且仅在处理成功后记录事件检查点。 - 仅在重试同一逻辑写入操作时复用幂等键。切勿在无关消息间共享幂等键。
- 切勿记录 bearer token、完整消息正文、附件字节或联系人详情。请记录稳定 ID 和操作元数据。
官方来源
评论
支持 Markdown