1:1トークルームの判別について(受信messageのsourceプロパティに含まれる、accountId、roomIdの出現仕様について)
お世話になります。
現在、フリープランにて以下の機能を持つ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を参照すると、エラーとなります。
さらに、実際に①のケースで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
업데이트 된 답글입니다.
中村恭輔 投稿者
シナリオは想定いただいているとおりです。(より厳密にいえば、①のルームIDは特定のルームなので、管理者画面のトークの監査から確認します。)
ノード出現について、連絡ありがとうございました。疑問点クリアになりました。
なお、ドキュメント(
https://developers.worksmobile.com/jp/document/100500901?lang=ja)では、いかなる場合もアカウントID、ルームID双方必須で出現する様に読み取れますので、改訂をご検討ください。
ありがとうございました。
2021.05.06
まだ、解決できませんか?
今すぐ実際に使用しているLINE WORKSユーザーに質問してみましょう。