Bot

1:1トークルームの判別について(受信messageのsourceプロパティに含まれる、accountId、roomIdの出現仕様について)

中村恭輔

2021.05.02既読 2543

お世話になります。

現在、フリープランにて以下の機能を持つbotを作成中です。

ーーーーーーーーーーーーーーーーーーーーーーーー

(1)グループAに含まれる各ユーザーに対し、botから「情報発信の依頼メッセージ」を送る。

 (※「情報発信の依頼メッセージ」はグループAに送るのでなく、各ユーザー個別に送る)

(2)各ユーザーはbotとの1:1トークルームにてbotに返信することで、情報を自社サーバーに発信する。

ーーーーーーーーーーーーーーーーーーーーーーーー

(1)を実現するためには、グループAにbotをあらかじめ招待しておく必要がある認識です。
しかし、グループA内でのその他のやり取りの際にbotを反応させたくないため、
botに対して、「1:1トークルームから受信したメッセ―ジ以外はスルー」するよう処理を実装したいと考えています。

受信メッセージのsourceプロパティに含まれるaccountId、roomIdについてですが、
 ケース
 accountId
 roomId
 ①1:1トークルームから受信
 送信元メンバーアカウント
 ノードが存在しない
 ②複数人が含まれるトークルームから受信
 送信元メンバーアカウント
 ノードが存在しない
 ③グループから受信
 送信元メンバーアカウント
 トークルームのID
の仕様となっている認識でよろしいでしょうか。

※ドキュメント上(参考1)では、「accountId:必須」「roomId:必須」と共に必須となっております。
 しかし、コミュニティ上の回答(参考2)では送信者情報は「accountIdまたはroomId」といずれか一方であるようにご回答されており、
 さらに、実際に①のケースでroomIdを参照すると、エラーとなります。
 
(参考1)
(参考2)

コメント2

  • 업데이트 된 답글입니다.

    LINE WORKS 公式アカウント

    こちらのシナリオですが、以下のような手順を想定しておりますでしょうか?
    ①グループに Bot を手動で追加
    → Join Event で roomId を取得
    ②取得した roomId を Bot トークルームのメンバーリスト照会 API を使用してメンバーの ID リストを取得
    https://developers.worksmobile.com/jp/document/1005023?lang=ja
    ③ID リストのメンバーに個別メッセージを送信

    Callback にて Message を受け取った際の source Parameter ですが、以下のようになっております。

    ①1:1トークルームから受信 → source.accountId
    ②1:Nトークルームから受信 → source.accountId および source.roomId
    ③グループトークルームから受信 → source.accountId および source.roomId

    グループトークルームも 1:N トークルームとなります。

    1:1 トークルームのみ応答したいということであれば、source.roomId の有無にてご判断ください。

    2021.05.06

    0
  • 업데이트 된 답글입니다.

    中村恭輔 投稿者

    ご回答ありがとうございました。
    シナリオは想定いただいているとおりです。(より厳密にいえば、①のルームIDは特定のルームなので、管理者画面のトークの監査から確認します。)

    ノード出現について、連絡ありがとうございました。疑問点クリアになりました。

    なお、ドキュメント(
    https://developers.worksmobile.com/jp/document/100500901?lang=ja)では、いかなる場合もアカウントID、ルームID双方必須で出現する様に読み取れますので、改訂をご検討ください。

    ありがとうございました。


    2021.05.06

    0
前の投稿BAD_REQUESTで送信できない場合がある
次の投稿LINE WORKSをIdPとした場合のシングルログアウトの実装方法
リスト

まだ、解決できませんか?
今すぐ実際に使用しているLINE WORKSユーザーに質問してみましょう。