質問・問題
入室制限ルール作成(Creates a rule) APIを実行し、他のユーザに入室制限中であることを通知する方法はありますか?
回答・解決方法
はい、ございます。
実現方法としては、入室制限ルール作成(Creates a rule) APIを実行後、入室制限ルール取得(Get rule list) API を実行し、その値を元に有効中かどうかの判定をする方法があります。
入室制限ルール API のリファレンスは以下になります。
【想定シナリオ】
1.入室制限ルール作成(Creates a rule) APIをコールします。
この際、レスポンス値の"id"を保持しておきます。
2.ユーザがチャンネルに入室しようとします。
3.入室制限ルール取得(Get rule list) APIをコールし、有効中の入室制限ルールを取得します。
※ルールが有効中の場合、レスポンスにそのルールが含まれます。
4.レスポンス値の「id」を元に、作成したルールが存在するかどうか検索します。
(例) 入室制限ルール取得(Get rule list) APIのレスポンス値
チャンネル("demo")を1分間入室禁止にするルールの場合
string(266) "{"status":"success","rules":[{"id":3191725919,"uid":null,"str_uid":false,"cname":"demo","ip":null,"ts":"2021-10-25T02:23:56.000Z","privileges":["join_channel"],"clientIp":"165.76.249.177","createAt":"2021-10-25T02:22:56.000Z","updateAt":"2021-10-25T02:22:56.000Z"}]}"
5.idが見つかった場合、ルールが有効中であるため、入室制限中であることをユーザに通知します。
(この時、エンドユーザは入室できません)
6.idが見つからなかった場合、ルール期限を過ぎているため、エンドユーザは入室することができます。
参考:Channel Management REST API