受邀参加会议的代理应当像真实参会者那样做出回应。而不是回复一句礼貌的“我是人工智能助手,请联系我的人类用户”的自动答复,也不是默默地将邀请置之不理。它应当查看会议详情,核对自己的日历,然后点击“接受”、“拒绝”或“暂定”——这与邀请中其他每位参会者看到的三个按钮完全相同。
大多数“人工智能日历”演示则反其道而行之。它们让模型指向人类的谷歌日历,并让其进行组织工作:提议时间、发送邀请、追踪回复状态。这是组织者流程,确实很有用。但是,一旦你的代理拥有了自己的电子邮件地址,并且人们开始邀请它参加活动,你就需要镜像对应的功能。此时,代理变成了被邀请者,而被邀请者并不负责组织——他们只负责回应。
本文探讨的就是这种回应机制。当一份邀请到达代理的邮箱时,奈拉斯(Nylas)会将其转化为代理日历上的一个事件,你的代码根据代理是否真正有空来决定接受、拒绝或暂定,然后你发起一次单一的 send-rsvp 调用,以像任何人类回复那样更新组织者的日历。我负责奈拉斯(Nylas)命令行界面(CLI)的开发工作,因此下面的终端命令正是我常用的命令,并且我会为每个命令提供原始的超文本传输协议(HTTP)调用示例,以便你可以在不使用软件开发工具包(SDK)的情况下将其集成到后端系统中。
授权是整个数据平面的核心
在讨论日历机制之前,有一个值得内化的抽象概念:代理账户仅仅是一个授权。它拥有一个 grant_id,该 grant_id 指向与其他所有奈拉斯(Nylas)授权相同的 /v3/grants/{grant_id}/* 端点——包括消息、线程、事件、日历、忙闲状态等所有内容。这里没有特殊的“代理应用程序编程接口(API)”。如果你曾经为连接的谷歌或微软账户列出过事件或发送过回复状态,那么你已经熟悉了这里的操作范围。在数据平面方面,无需学习任何新内容。
代理账户的不同之处在于其身份:它在奈拉斯(Nylas)托管的基础设施上拥有真实的邮箱和真实的日历,因此可以像真人一样被寻址、被邀请以及接收回复状态。这些端点故意设计得平淡无奇。有趣的部分在于,软件现在成为了邀请中的一等公民参与者。
如果你是代理账户的新手,建议 alongside 阅读本文的同时,阅读代理账户概述和日历机制页面这两篇文档。
入站邀请如何变为可回复的事件
以下是生命周期流程,因为这部分是人们容易出错的地方。代理不会手动解析互联网日历调度(ICS)附件,也不会通过回复邀请邮件来接受邀请。奈拉斯(Nylas)为你处理了互联网日历调度(ICS)的基础设施工作:
- 谷歌日历、Outlook、苹果日历中的某人——或另一个代理账户——创建了一个会议,并将代理的地址(例如
assistant@yourcompany.com)添加为参会者。 - 他们的日历向代理的邮箱发送互联网日历(iCalendar)邀请。奈拉斯(Nylas)检测到该邀请,解析会议详情,并在代理的主日历上创建一个匹配的事件。随后触发
event.created网络钩子(webhook)。 - 在该事件中,代理列于
participants[]数组中,状态为status: "noreply"。组织者是发送邀请的人——并非代理。回复状态处于待定状态。
第三点是概念上的关键转折。代理是参会者,而非组织者。 它无法更新或取消会议;它只能做出回应。并且由于事件对象已经携带了组织者、参会者、时间窗口和描述信息,你可以驱动
免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。