はじめに
- バーチャルオフィスサービスの Gather Town にはチャット機能がございます 💬
- チャットなどを送受信できる WebSocket の API とクライアントライブラリあり (当時)
- Gather 上でやり取りした内容を自動で Slack や Google スプレッドシート
へ残したり社内の発表で投稿されたコメントが流れる某動画サイト風の演出を行ったりするツールを作る際に便利でした
- Gather 上でやり取りした内容を自動で Slack や Google スプレッドシート
- チャットなどを送受信できる WebSocket の API とクライアントライブラリあり (当時)
- こちらの機能は2024年4月頃にアップグレードされ根本的にいろいろ変わったので今回は新しいチャット内容の取得方法をまとめます
- 今後、前述のようなツールを作る際の役に立てばと思います (備忘録)
- 今後、前述のようなツールを作る際の役に立てばと思います (備忘録)
新旧チャット機能で変わったこと
- チャット機能が Sendbird | センドバード という SaaS へ置き換えられました
- これにより Slack のような絵文字
によるリアクション機能や投稿したメッセージの編集機能
などが提供されるようになりました
- 従来の API からはチャットを取り扱うことができなくなったので Sendbird の Web API で取得する必要があります
新 API でチャット内容を取得してみる
[1] 予めチャットを投稿
[2] チャット内容を取得し jq で整形
※ {}
内の値は手っ取り早く開発者ツールで他の sendbird の API のペイロードを参考にしました
curl 'https://api-{アプリケーションID}.sendbird.com/v3/{チャットの種類 会議室とかであれば group_channels で良い}/{チャンネルID}/messages?message_ts={1742635972086 などメッセージを取得したい時間帯の unix タイム}' \
-H #省略
-H 'content-type: application/json; charset=utf-8' | jq
応用
以前作った Gather 上のコメントやリアクションを Web サイトに流すツールをまた使えるよう修正できました
[余談] Gather のデータの副処理者としての Sendbird 🤝
2023年 の Data Processing Addendum の時点で既にアプリ内チャットの用途として記載あり |
---|
![]() |
[余談] Gather Help へのお問い合わせ
- 窓口URL: https://support.gather.town/hc/en-us
- 一応 Gather として Sendbird をラップした感じの API がないかお伺いしてみた
- 結論としては該当するものは無いようだが notion 上にまとめられた API ドキュメント をご紹介いただけました
[余談] Sendbird セッショントークン API とクライアントライブラリ
セッショントークン API
永続的にチャット内容を取得したい場合は必要かもしれない
クライアントライブラリ
node.js とかで開発する場合は使った方が良いかもしれない
さいごに
とりあえず過去に作った Gather のチャットを取り扱うツールたちはこれで直せそうで良かったです
今後は前述であげた セッショントークン API や クライアントライブラリ 周りも検証できたらと思います
ここまでご高覧ありがとうございました!