チャンネル
Channelは、常駐Anyy Gatewayをメッセージングプラットフォームに接続します。アカウントの追加、ヘルスチェック、設定の更新、再認証、接続の削除は、主にDashboardで行います。
対応プラットフォームの一覧と動作の比較は、メッセージングプラットフォームを参照してください。
セッションの動作とプラットフォーム接続
プラットフォームのアカウント認証、受信メッセージ、送信時の配信は、Anyyの連携機能です。Sessionに受け入れられた後は、Agentメッセージ、steering/follow-upキュー、中断、イベントは、ほかのAnyyインターフェースと同じ、Piに整合したライフサイクルに従います。プラットフォームアダプターが、別のAgentループやキューポリシーを追加することはありません。
固定バージョンのPi v1.2.0のメインリポジトリには、Feishu/Weixin/Slackを統一的に扱う対応ネイティブアダプターAPIはありません。READMEでは、チャットのワークフローについて別プロジェクトのpi-chatを案内しています。そのプロジェクトとサードパーティープラグインは、この移植の参照元ではありません。ローカルのアカウント設定や管理された条件でのプロトコル検査だけでは、実際の外部アカウントの接続を証明できません。観測された健全性を確認してください。
Channelページを開く
Dashboard → Channelを開きます。フィルターで次の表示を切り替えられます。
- Configured — このProfileに保存されたアカウント。未接続のものも含みます。
- Available — Anyyで設定できるプラットフォームアダプター。
設定済みの各アカウントには、固定のアカウントIDと、現在の接続を識別するincarnationがあります。現在の設定画面では、そのプラットフォームにアカウントがない場合にのみ追加でき、二つ目のアカウントを作成する手順はありません。
アカウントを設定する
- 利用可能なプラットフォームを選びます。
- アカウントIDを入力します。
- プラットフォーム固有のフィールドを入力します。
- 選択したDashboard操作で提供されるフィールドを入力します。
- 設定を保存します。
保存すると、選択したアカウント操作を直接送信し、Operationの受領情報を返します。アカウント設定と保護された認証情報の関連付けは、まとめて確定されます。シークレットを空欄にしたときに既存値が保持されるのは、そのフィールドが保持を許す場合だけです。Anyyが管理するアカウント認証情報を削除するには、アカウントの削除操作を使います。
committedまたはno_opの受領情報が示すのはローカル設定の結果であり、プラットフォームへの接続確認ではありません。新たな起動/再試行や、望ましい状態に変更がない操作でも、Runtimeに接続の再調整を要求します。同一の呼び出し要求を再試行した場合は、元の受領情報を返します。実際の結果は、観測されたアカウントの健全性で確認してください。
WeixinはQRコードによる手順を使います。利用するアカウントでスキャンし、スマートフォンで確認して認証結果を待ちます。QR操作の有効期間は五分間です。有効期限前に受け付けられた確認は、その後もローカル検証を完了できます。アカウント設定が完了しても、観測されたトランスポートの健全性は別途確認が必要です。進行中の試行のキャンセルや置き換えは、このページで行います。
Gatewayの再起動で進行中のQRポーリングのハンドルが失われると、その試行は不明または期限切れとして終了します。Anyyが通知せずに別のQRコードを取得することはありません。案内に従って新たに開始してください。
ログイン要求の応答が失われた場合は、Retryを使うかログインページを再読み込みします。Dashboardは同じ要求を保持するため、再試行で別の認証が始まることはありません。明示的に更新した場合にのみ、新しいQRコードを要求します。要求を復旧できる期間は、一回の操作ごとに十分間です。それを過ぎた場合は、アカウント設定に戻ってください。QRコード自体の五分の有効期間が延びるわけではありません。
Weixinアカウントを再認証するときは、同じ識別情報のアカウントでスキャンしてください。別のアカウントに置き換える場合は、先に古いアカウントを削除してから新しいものを設定します。
多くのプラットフォームでは、Dashboard/TUIの認証情報フォームにDM/グループポリシーの入力欄はありません。対話式のanyy setup channelウィザードで変更してください。Weixinには、連携済みアカウント用の独立したアクセスフォームがあります。Feishuの設定では既定の長時間接続を使い、標準の設定インターフェースに接続プロファイルの切り替え選択肢はありません。既存のWebhookアカウントについては、プラットフォーム別のガイドを参照してください。
アカウントの健全性を確認する
設定済みアカウントを開くと、次の情報を確認できます。
- 望ましい状態と現在のランタイム状態
- healthy、degraded、unhealthy、unknownの状態
- 最後の受信/送信アクティビティ
- 表明された配信確認への対応と、観測された再試行/バックオフの証拠
- 認証または権限のエラー
- 機密情報をマスキングした設定値
degradedのアカウントでも、一部の機能は動く場合があります。再読み込みを繰り返す前に、ページに表示される対処方法に従ってください。
配信確認への対応は、アダプターが表明する機能です。特定のメッセージがプラットフォームに到達した証拠ではありません。現在の証拠、診断、次の再試行時刻は、観測された接続状態を示します。
Anyyは、送信前に安全に再試行できる場合、最終返信を保留状態で保持します。一部が受け付けられた場合や、リモートの結果が不明な場合は、自動的にメッセージを繰り返しません。もう一度送るよう依頼する前に、プラットフォームの会話を確認してください。終了したターンの進行状況が、その最終返信の後に配信されることはありません。
アクセスポリシー
利用できる制御はプラットフォームによって異なります。代表的なポリシーは次のとおりです。
- ダイレクトメッセージの無効化、ペアリング、許可リスト、または公開
- グループメッセージをメンションまたは既存のルーム許可リストに限定
- 対応プラットフォームで、新しい送信者のペアリングをCLIから承認
ポリシーやリストのフィールドは、操作する画面によって異なります。現在、公開されている送信者リストの入力欄はWeixinとIRCにあります。ほかのアダプターも既存リストを使う場合はありますが、現在の設定操作では項目を編集できません。allowlistを選ぶだけでリストが作成されるとは考えないでください。実際の設定手順で指定できる最も限定的なポリシーを使ってください。アカウントを接続しても、すべての送信者が許可されるわけではありません。
連携済みのWeixinアカウントでは、設定を開いてDMポリシーとallow_from送信者リストを変更できます。アクセス設定を保存しても、現在のログインは保持され、再度のQRスキャンは不要です。空のリストを保存すると、許可リストの全項目を削除します。
Channelを再読み込みする
保存済みアカウントをランタイムで再調整する必要がある場合は、Reloadを選びます。通常、アカウントの保存時点で再調整は要求されています。Reloadは過去のメッセージを再送せず、無効なWebhookリスナーも起動しません。
CLIでは次のように実行します。
anyy channel reload
anyy channel doctor telegram
doctorは、設定済みChannelの接続を観測し、アカウント設定を変更せずに診断を報告します。Webhookリスナーの変更にはGatewayの再起動が必要です。メッセージングプラットフォームを参照してください。
CLIでペアリングする
現在のDashboardのChannelページに、ペアリング要求の承認一覧はありません。ペアリングを使うプラットフォームでは、CLIを使ってください。
anyy channel pairing list
anyy channel pairing approve --request REQUEST_ID
anyy channel pairing reject --request REQUEST_ID
anyy channel pairing revoke --grant GRANT_ID
承認前に、プラットフォーム、アカウント、マスキングされた送信者の識別情報、要求されたアクセスを確認してください。
件数に上限のある一覧で、既知の要求IDや許可IDが見つからない場合は、アカウントのスコープを明示します。
anyy channel pairing approve --request REQUEST_ID --channel telegram --account personal
anyy channel pairing revoke --grant GRANT_ID --channel telegram --account personal
これは、同じIDベースの操作に対して現在のアカウントを選ぶものであり、所有権の確認を回避するものではありません。
アカウントを削除する
アカウントの詳細ページに削除操作があります。そのアカウントのChannel設定とAnyy管理の認証情報を削除します。外部プラットフォーム上のメッセージは削除しません。
削除操作は、ローカルの停止/削除済み状態と認証情報の削除をまとめて確定してから、実際のトランスポートを調整します。同じアカウントを再設定する前に、一覧と接続状態を更新してください。ローカルで削除されたという受領情報だけでは、プラットフォーム側でログアウトされたことは証明できません。
CLIで設定する
対話式ウィザードを実行します。
anyy setup channel
プラットフォーム名を追加すると、プラットフォーム専用のウィザードではなく、非対話式の設定になります。たとえば、既存のTelegramアカウントでは、保持が許された認証情報を維持してポリシーを更新できます。
anyy setup channel telegram --set dm_policy=pairing --set group_policy=mention
新しいアカウントの設定では、宣言された認証情報の入力も必要です。
anyy setup channel --helpで、非対話式の--setと機密情報の入力オプションを確認してください。
セキュリティのヒント
- ボットトークンや署名用シークレットを、シェル履歴やスクリーンショットに残さないでください。
- 公開DMポリシーを使う前に、ペアリングか許可リストから始めてください。
- プロバイダー側のWebhookエンドポイントとプラットフォームの権限を確認してください。
- アカウントの利用を終了するときは、認証情報を削除してください。
- 外部メッセージの本文と添付ファイルは、信頼できない入力として扱ってください。
トラブルシューティング
| 問題 | 対処 |
|---|---|
| アカウントが利用不可のまま | 詳細ページを開き、報告された対処方法に従う |
| ログインの有効期限が切れた | 同じアカウントで再認証する |
| 受信するが返信に失敗する | 送信権限、配信状態、プラットフォームのレート制限を確認 |
| 新しい送信者がAnyyを使えない | DMポリシーと保留中のペアリング要求を確認 |
| 設定を変更したがランタイムに反映されない | Reloadを選ぶかanyy channel reloadを実行 |
接続済みChannelでスケジュール結果を配信するには、Cronを参照してください。