LoginSignup
1
0

[LINE WORKS Bot] トークルームのグループ/組織を特定する

Posted at

はじめに

グループや組織のトークルーム上からBotを経由して何かデータ連携を行いたい際に、以下のAPIを使うことでそのトークルームに紐づくグループや組織を特定できるようになりました。

トークルームの情報取得 ※ 2023/7/13に追加されました

このAPIによってトークルームに関する情報を取得でき、そのトークルームがグループや組織のものである場合は、それらIDがレスポンスに含まれます。

トークルーム情報の取得方法

トークルームの情報取得 APIのリクエスト形式は以下の通りです。

GET https://www.worksapis.com/v1.0/bots/{botId}/channels/{channelId}

PathにbotIdchannelId を指定することで、そのトークルームの情報を取得できます。

channelIdはトークルーム固有のIDであり、Callback eventやトークルーム画面のメニューから取得できます。

■ Note
Botが参加していないトークルームの情報は取得できません。

APIを使ってみる

グループのトークルームを作ってBotを追加し、そのトークルームのChannel IDとBotのBot IDでAPIを実行してレスポンスをみてみます。

Botを作成

※ 既にBotがある場合はスキップしてください。

Developer ConsoleにてBotを作成、および、管理者画面にてBotを追加します。

Botの設定で「複数人のトークルームに招待可」をONとしておくことで、グループのトークルームへ招待が可能です。

image.png

作成については以下の記事を参照ください。

グループを作成

※ 既にグループがある場合はスキップしてください。

「トーク」から「新規作成」で「社内メンバーとトーク」を選択
image.png

「メンバー選択」画面の「グループ」タブから「グループ作成」を選択
image.png

タイトルなどを入力し「追加」
image.png

グループが作成され、グループのトークルームも作成される。
image.png

参考: https://help.worksmobile.com/jp/message/create-message-rooms/how-to-create-groups/

グループにBotを追加

※ 既にBotがグループに参加している場合はスキップしてください。

グループのトークルームのメニューで「Bot招待」を選択。

image.png

対象のBotを選択し「OK」すると、Botが追加される。

image.png

Bot IDを取得

Developer ConsoleのBotの詳細画面から、Bot IDを取得します。

image.png

Channel IDを取得

グループのトークルームのChannel IDを取得します。

トークルームのメニューの「チャンネルID」から取得します。

image.png

トークルームの情報取得 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が入っているトークルームの詳細情報を取得できるようになりました。これでグループや組織情報と紐づけたデータ連携もやりやすくなりました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0