はじめに
グループや組織のトークルーム上からBotを経由して何かデータ連携を行いたい際に、以下のAPIを使うことでそのトークルームに紐づくグループや組織を特定できるようになりました。
トークルームの情報取得 ※ 2023/7/13に追加されました
このAPIによってトークルームに関する情報を取得でき、そのトークルームがグループや組織のものである場合は、それらIDがレスポンスに含まれます。
トークルーム情報の取得方法
トークルームの情報取得 APIのリクエスト形式は以下の通りです。
GET https://www.worksapis.com/v1.0/bots/{botId}/channels/{channelId}
PathにbotId
と channelId
を指定することで、そのトークルームの情報を取得できます。
channelId
はトークルーム固有のIDであり、Callback eventやトークルーム画面のメニューから取得できます。
■ Note
Botが参加していないトークルームの情報は取得できません。
APIを使ってみる
グループのトークルームを作ってBotを追加し、そのトークルームのChannel IDとBotのBot IDでAPIを実行してレスポンスをみてみます。
Botを作成
※ 既にBotがある場合はスキップしてください。
Developer ConsoleにてBotを作成、および、管理者画面にてBotを追加します。
Botの設定で「複数人のトークルームに招待可」をONとしておくことで、グループのトークルームへ招待が可能です。
作成については以下の記事を参照ください。
グループを作成
※ 既にグループがある場合はスキップしてください。
「メンバー選択」画面の「グループ」タブから「グループ作成」を選択
参考: https://help.worksmobile.com/jp/message/create-message-rooms/how-to-create-groups/
グループにBotを追加
※ 既にBotがグループに参加している場合はスキップしてください。
グループのトークルームのメニューで「Bot招待」を選択。
対象のBotを選択し「OK」すると、Botが追加される。
Bot IDを取得
Developer ConsoleのBotの詳細画面から、Bot IDを取得します。
Channel IDを取得
グループのトークルームのChannel IDを取得します。
トークルームのメニューの「チャンネルID」から取得します。
トークルームの情報取得 APIを実行
※ APIを実行する前に、bot.read
または bot
scopeを含んだアクセストークンの発行が必要です。
アクセストークンの取得については以下を参考ください。
取得したBot IDとChannel IDを使って、グループのトークルームの情報を取得します。
cURLでの実行例。
curl --location 'https://www.worksapis.com/v1.0/bots/{Bot ID}/channels/{Channel ID}' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {access token}'
実行すると、以下のような内容が返ります。
{
"domainId": 123456789,
"channelId": "Channel ID",
"title": "test group",
"channelType": {
"type": "GROUP",
"groupId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}
グループのトークルームであるため、channelType.type
に GROUP
が入り、channelType.groupId
にそのグループのGroup IDが入ります。
補足: 取得したGroup IDからグループ情報を取得する
上記のレスポンスの channelType.groupId
を使ってグループ情報を取得できます。
グループの取得 APIを利用します。
GET https://www.worksapis.com/v1.0/groups/{groupId}
※ APIを実行する前に、group.read
scopeを含んだアクセストークンの発行が必要です。
補足: 組織のトークルームの場合
今回はグループのトークルームでしたが、組織のトークルームの場合は、以下のように channelType.type
には ORGUNIT
が入り、channelType.orgUnitId
に組織のOrgUnit Idが入ります。
{
"domainId": 123456789,
"channelId": "Channel ID",
"title": "test orgunit",
"channelType": {
"type": "ORGUNIT",
"orgUnitId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}
グループと同様に 組織の取得 APIを使うことで組織の情報を取得できます。
まとめ
トークルームの情報取得 APIによって、Botが入っているトークルームの詳細情報を取得できるようになりました。これでグループや組織情報と紐づけたデータ連携もやりやすくなりました。