如何进行扩展以保存 Circuit Unify 对话中的所有消息?

How to make an extension to save all messages in a conversation of Circuit Unify?

我正在使用 Circuit Unify 工作。但是,我想将对话中的消息保存或导出到文件中以保存以获得更好的文档。目前在 Web App 和 Desktop App 上似乎是不可能的。因此,我想做一个扩展(或应用程序?)来完成这项工作。

我的问题是:我应该从哪里开始?如何扩展 Circuit?是否可以制作这样的扩展程序(或应用程序)?

我们将不胜感激您的意见和建议

您最好的选择是使用电路 JavaScript API 来检索使用 API getConversationItems 的消息。每个项目(又名消息)都包含 url(s) 以下载其附件。

现在有几种不同的方法可以做到这一点。

选项 1:使用机器人

创建一个机器人(客户端凭据授予),该对话的成员可以使用 Circuit 客户端上的常规 "Add participant" 按钮将其添加到对话中。然后,该机器人可以访问该对话的所有消息,并可以收听发布的新消息。机器人可以侦听正在发送的特定消息(命令),例如 /export。发送此命令后,机器人会检索要导出的此对话的所有数据,创建一个 pdf(或任何需要的格式)并将其附加到对话中。或者,机器人也可以将该 pdf 保存在其他位置,但这可能会带来安全问题。

选项 2:使用单独的网络应用程序

创建一个网络应用程序,用户可以通过 OAuth(隐式或授权代码授予类型)使用他们的 Circuit 凭证登录。该应用程序然后代表登录用户进行操作。该应用程序可以列出用户有权访问的对话 (getConversations API) 并显示一个按钮以导出所选对话。然后,该应用程序会像选项 1 中的机器人一样创建 pdf,但网络应用程序不会将 pdf 发布到对话中,而是下载 pdf。

选项 3:创建 chrome 扩展程序

我不鼓励这个选项,因为还没有正式的方法来扩展 Circuit webclient。这意味着新的 Circuit webclient 版本可能会破坏扩展。使用 chrome 扩展,可以在 UI 中添加一个 "Export" 按钮,并使用一些内部 API 获取要导出的数据。 有计划创建官方扩展点,以允许开发人员扩展 Circuit webclient 的某些部分,并在 Chrome 扩展中使用 JS SDK。

Note: You could also use the Circuit REST API instead of the JS SDK to retrieve the messages.