Discord
AnyyはDiscordボットトークンと公式Gateway接続プロファイルを使用します。アダプターは、ダイレクトメッセージ、サーバーのチャンネル、Discordスレッド、受信添付ファイル、ペアリング、稼働中のヘルスチェックに対応しています。
1. Discordアプリケーションを作成する
Discord Developer Portalで次を行います。
- アプリケーションを作成してボットユーザーを追加します。
- ボットトークンを安全なパスワードマネージャーにコピーします。
- 有効にする会話に応じたGatewayインテントを設定します。
- メッセージの表示と送信の権限を付けて、対象のサーバーにボットをインストールします。
Anyyはポリシーに基づいて必要なインテントを算出します。ダイレクトメッセージにはdirect-messageインテント、有効なサーバーメッセージにはguild-messageインテントが必要です。グループポリシーがopenまたはallowlistの場合はMessage Contentインテントも必要です。Dashboardには対応する外部側の前提条件が表示されます。
2. AnyyにDiscordを追加する
Dashboard → Channel → Add → Discordを開きます。既定の項目はBot Gatewayです。ボットトークンを追加します。DMとグループのポリシーはCLIウィザードで設定してください。このDashboardフォームには入力欄がありません。
CLIでの設定は次のとおりです。
anyy setup channel
ボットトークンはProfileのシークレットとして保存されます。アカウントを有効にすると、Anyyは認証済みのボット識別情報とアプリケーション識別情報の両方を検証してから接続を受け入れます。
3. ポリシーを設定する
Discordの既定値は、ダイレクトメッセージがpairing、グループがmentionです。公開されている設定の選択肢は次のとおりです。
| ポリシー | DM | グループ |
|---|---|---|
pairing | 対応 | — |
allowlist | 対応 | 対応 |
open | 対応 | 対応 |
mention | — | 対応 |
disabled | 対応 | 対応 |
CLIウィザードでDiscordを選んでポリシーを編集します。既存の許可リストにはDiscordのユーザー/チャンネル識別情報が使われます。現在の設定機能ではリスト項目を編集できません。メッセージングプラットフォームを参照してください。
4. 接続を検証する
anyy channel reload
anyy channel doctor discord
ダイレクトメッセージを送るか、許可されたサーバーチャンネルでボットをメンションします。Pairingが有効な場合は、新しいDM送信者を承認します。
anyy channel pairing list --channel discord
anyy channel pairing approve --request REQUEST_ID
スレッドと添付ファイル
Discordスレッドの識別情報は会話のルートに保持されるため、返信は同じスレッドに戻ります。受信添付ファイルはメディア制限を満たすと、その範囲に対応するAnyyセッションにダウンロードされます。
ボットに必要以上のDiscord権限を与えないでください。ツールとモデルの権限はAnyyが管理しますが、ボットが読み書きできる場所はDiscordの権限で決まります。
グループポリシーを広げた場合は、対応するDiscord Gatewayインテントも更新してAnyyを再読み込みします。トークンが有効なだけではメッセージイベントの配信は保証されません。
トラブルシューティング
| 症状 | 確認する項目 |
|---|---|
| ボットは認証されるがサーバーメッセージを受信しない | guild/messageインテント、ボットのインストール、チャンネル権限、グループポリシー |
| メンションだけが動く | 既定のmentionポリシーでは想定どおりの動作 |
| DMが送信者のペアリングを待っている | ペアリング要求を承認してから、新しいDMを送信 |
| 返信先が正しくない | イベントに意図したチャンネル/スレッド識別情報が含まれるか |
| 添付ファイルがない | DiscordのURLへのアクセス、ファイルサイズ、メディア制限、診断出力 |
共通のペアリングと再読み込みの動作は、メッセージングプラットフォームを参照してください。