Clawdbot Discord Skill - Discord APIを統合したメッセージ自動化
Clawdbot向けDiscord Skillを利用して、メッセージ送信、リアクション、スレッド管理、サーバー運用の自動化を実現する方法を解説します。
Clawdbotの公式Skillとして提供されているDiscord Skillは、Discord REST APIを利用したメッセージ送信、リアクション管理、スレッド操作、サーバー運用の自動化を可能にするツールである。本記事では、Discord Skillの技術仕様、主要機能、実装例、およびセキュリティ考慮事項について解説する。
概要
Discord Skillは、Clawdbot(AI駆動のCLIエージェント)からDiscord APIを制御するためのインターフェースを提供する。メッセージの送信・編集・削除、リアクション追加、投票(Poll)作成、スレッド管理、絵文字・スタンプのアップロード、メンバー情報取得など、Discord Bot開発で必要となる主要機能をカバーしている。
技術的には、Clawdbot内部のmessageツール(Discord用プラグイン)経由でDiscord REST APIへリクエストを送信し、BotトークンによるOAuth認証を使用する。チャンネル管理やモデレーション機能は、デフォルトで無効化されており、明示的な設定により有効化する必要がある。
技術的仕様
システム要件
- Clawdbot: バージョン不明(公式ドキュメントに記載なし)
- Discord Bot Token: Discord Developer Portalで発行(OAuth2スコープ:
bot, Permissions: 必要な権限を事前設定) - 環境変数: BotトークンをClawdbot設定に登録
- 依存関係: なし(Clawdbot組み込みツール)
インストール方法
Discord Skillは組み込みSkillのため、追加インストール不要。Botトークンの設定のみ必要となる。
# Discord Bot Token設定例(環境変数またはClawdbot設定ファイル)
export DISCORD_BOT_TOKEN="YOUR_BOT_TOKEN_HERE"
Discord Developer Portalでの事前準備:
- https://discord.com/developers/applications でアプリケーション作成
- Bot設定からトークン取得
- OAuth2 URL GeneratorでBotをサーバーに招待
- 必要な権限を付与(例: Send Messages, Manage Messages, Add Reactions等)
APIエンドポイント
Discord Skillは以下のDiscord REST API v10エンドポイントを利用:
/channels/{channelId}/messages(メッセージ送受信)/channels/{channelId}/messages/{messageId}/reactions(リアクション)/channels/{channelId}/threads(スレッド管理)/guilds/{guildId}/emojis(カスタム絵文字)/guilds/{guildId}/stickers(スタンプ)- その他(チャンネル管理、メンバー情報、イベント等)
アクセス制御
Discord Skillは、アクション単位でのゲーティング機能を提供する。デフォルトではメッセージ送信・リアクション・スレッド管理等が有効だが、以下の機能はデフォルトで無効:
- roles: ロール付与・削除(
discord.actions.roles: false) - channels: チャンネル・カテゴリの作成・編集・削除(
discord.actions.channels: false) - moderation: タイムアウト・キック・BAN(
discord.actions.moderation: false)
有効化には、Clawdbot設定ファイルで明示的にtrueを設定する必要がある。
主要機能
メッセージ送信
{
"action": "sendMessage",
"to": "channel:123456789012345678",
"content": "デプロイ完了: v1.2.3"
}
- メディア添付:
mediaUrlパラメータで画像・音声・動画を添付可能(file:///path/to/fileまたはhttps://...) - 返信:
replyToパラメータでメッセージIDを指定し、特定メッセージへ返信 - DM送信:
to: "user:987654321098765432"でダイレクトメッセージ送信
リアクション管理
{
"action": "react",
"channelId": "123456789012345678",
"messageId": "987654321098765432",
"emoji": "✅"
}
カスタム絵文字の場合:
{
"emoji": "<:emoji_name:1234567890>"
}
リアクションユーザー一覧取得:
{
"action": "reactions",
"channelId": "123456789012345678",
"messageId": "987654321098765432",
"limit": 100
}
投票(Poll)作成
{
"action": "poll",
"to": "channel:123456789012345678",
"question": "次のリリース日はいつがよい?",
"answers": ["2026-02-20", "2026-02-27", "2026-03-05"],
"allowMultiselect": false,
"durationHours": 24
}
- 期間:
durationHoursは最大768時間(32日間) - 複数選択:
allowMultiselect: trueで複数回答可能
スレッド管理
スレッド作成(メッセージから派生):
{
"action": "threadCreate",
"channelId": "123456789012345678",
"name": "Bug修正ディスカッション",
"messageId": "987654321098765432"
}
スレッド一覧取得:
{
"action": "threadList",
"guildId": "111222333444555666"
}
カスタム絵文字・スタンプアップロード
絵文字アップロード:
{
"action": "emojiUpload",
"guildId": "111222333444555666",
"name": "clawdbot_logo",
"mediaUrl": "file:///tmp/logo.png",
"roleIds": ["777888999000111222"]
}
- 制限: PNG/JPG/GIF、256KB以下
- 権限:
roleIds省略時は全メンバーが使用可能
スタンプアップロード:
{
"action": "stickerUpload",
"guildId": "111222333444555666",
"name": "celebration",
"description": "祝賀スタンプ",
"tags": "🎉",
"mediaUrl": "file:///tmp/sticker.png"
}
- 制限: PNG/APNG/Lottie JSON、512KB以下
実装例
例1: デプロイ完了通知の自動送信
#!/bin/bash
# deploy-notify.sh
VERSION="v1.3.0"
CHANNEL_ID="123456789012345678"
# デプロイ実行
./deploy.sh
# Discord通知
clawdbot run <<EOF
message action:send target:channel:${CHANNEL_ID} message:"デプロイ完了: ${VERSION}"
EOF
例2: エラーレポートへのリアクション追加
// error-reaction.js
const { exec } = require('child_process');
const channelId = '123456789012345678';
const messageId = '987654321098765432';
exec(`clawdbot run 'message action:react channelId:${channelId} messageId:${messageId} emoji:"⚠️"'`, (error, stdout, stderr) => {
if (error) {
console.error(`エラー: ${error.message}`);
return;
}
console.log('リアクション追加完了');
});
例3: 週次投票の自動作成
// weekly-poll.js
const channelId = '123456789012345678';
const pollData = {
action: 'poll',
to: `channel:${channelId}`,
question: '今週の優先タスクは?',
answers: ['機能A開発', '機能B開発', 'バグ修正', 'ドキュメント更新'],
allowMultiselect: true,
durationHours: 168, // 7日間
content: '投票をお願いします'
};
const command = `clawdbot run 'message ${Object.entries(pollData).map(([k, v]) => `${k}:"${v}"`).join(' ')}'`;
require('child_process').exec(command);
例4: メンバー情報取得とログ記録
#!/bin/bash
# member-audit.sh
GUILD_ID="111222333444555666"
USER_ID="333444555666777888"
# メンバー情報取得
INFO=$(clawdbot run "message action:member-info guildId:${GUILD_ID} userId:${USER_ID}")
# ログファイルに記録
echo "[$(date)] ${INFO}" >> audit.log
例5: メッセージ検索とアーカイブ
// search-archive.js
const { exec } = require('child_process');
const guildId = '111222333444555666';
const query = 'セキュリティアラート';
const searchCmd = `clawdbot run 'message action:search guildId:${guildId} content:"${query}" limit:50'`;
exec(searchCmd, (error, stdout, stderr) => {
if (error) {
console.error(`検索エラー: ${error.message}`);
return;
}
const results = JSON.parse(stdout);
console.log(`検索結果: ${results.length}件`);
// 結果をファイルに保存
require('fs').writeFileSync('archive.json', JSON.stringify(results, null, 2));
});
ユースケース
開発チーム向け
- CI/CD通知: GitHub ActionsやJenkinsからのビルド成功・失敗通知
- エラーアラート: 本番環境のエラーログをDiscordチャンネルに自動投稿
- コードレビュー: プルリクエスト作成時に専用スレッドを自動生成
プロジェクト管理
- タスク完了確認: 投票機能で優先順位決定
- 定期リマインダー: 毎週の進捗報告をスケジュール投稿
コミュニティ運用
- 新規メンバーウェルカム: 参加時に自動でDM送信
- イベント告知: カレンダー連携でイベント作成・通知
制限事項・セキュリティ考慮事項
API制限
- レート制限: Discord APIは以下のレート制限を適用(公式ドキュメントに記載)
- グローバル: 50リクエスト/秒
- エンドポイント別: 5-10リクエスト/秒
- ファイルサイズ: 絵文字256KB、スタンプ512KB、通常添付ファイル8MB(Nitroサーバーは100MB)
セキュリティ
- トークン保護: Botトークンは環境変数または暗号化設定ファイルに保存(ソースコードに記載禁止)
- 権限最小化: 必要最低限の権限のみ付与(例: メッセージ送信のみの場合は
Send Messagesのみ) - 監査ログ: モデレーション操作は監査ログに記録(Discord側の機能)
ベストプラクティス
- エラーハンドリング: APIエラー時の再試行ロジック実装推奨
- ログ記録: 送信メッセージの内容・時刻を記録(トラブルシューティング用)
- テスト環境: 本番サーバーではなく、テスト用サーバーで動作確認
参考リンク
- Discord Developer Portal: https://discord.com/developers/docs
- Discord API Reference: https://discord.com/developers/docs/reference
- Clawdbot公式サイト: https://clawdbot.com
- Discord Bot Best Practices: https://discord.com/developers/docs/topics/community-resources
本記事の情報は2026年2月15日時点のものです。Discord API仕様やClawdbotのアップデートにより、機能や制限事項が変更される可能性があります。最新情報は各公式サイトをご確認ください。
関連記事
Notion Skill - ClawdbotでNotion管理を自動化
Clawdbot向けNotion Skillを利用して、Notion APIでページ、データベース、ブロックを管理・自動化する方法を解説します。
Coding Agent Skill - Clawdbotでコーディングエージェントを統合
Codex CLI、Claude Code、OpenCode、Pi Coding Agentなど、主要なコーディングエージェントをClawdbotから統合利用する方法を解説します。
GitHub Skill - ClawdbotでGitHubを自動化
Clawdbot向けGitHub Skillを利用して、gh CLIでIssue、PR、CI/CD、リポジトリ管理を自動化する方法を解説します。
人気記事
ChatGPT(OpenAI)とClaude(Anthropic)の機能比較 2026年版。コーディング・長文解析・コスト・API料金の違いを検証
ChatGPT(GPT-4o/o3)とClaude(Sonnet 4.6/Opus 4.5)を2026年時点の最新情報で比較する。コーディング能力、長文処理、日本語品質、API料金、無料プランの違いをSWE-benchなどのベンチマーク結果とともに解説する。
【2026年2月20日 所感】「AIがコードを書く」は仮説から現実になった——しかし私たちはその意味をまだ消化できていない
2026年2月20日に観測したコーディングエージェント関連ニュースの総括と所感。Anthropicの自律性研究、cmux、MJ Rathbunのエージェント事故、HN「外骨格 vs チーム」論争、Stripe Minions週1000件PR、Taalas 17k tokens/sec——朝から夜までの流れを通じて見えてきた「AIがコードを書く時代」の実相を考察する。
868のスキルをnpx 1コマンドで——「Antigravity Awesome Skills」が主要AIコーディングエージェントの共通スキル基盤になりつつある
Claude Code・Gemini CLI・Codex CLI・Cursor・GitHub Copilotなど主要AIコーディングアシスタントを横断する868以上のスキルライブラリ「Antigravity Awesome Skills」(v5.4.0)を詳細分析。Anthropic・Vercel・OpenAI・Supabase・Microsoftの公式スキルを統合した設計思想、ロール別バンドル・ワークフロー機能、SKILL.mdによる相互運用性のアーキテクチャを解説する。
最新記事
AIエージェント間通信の標準化競争が始まる——AquaとAgent Semantic Protocolが同日登場
2026年2月23日、Hacker Newsに2つのAIエージェント通信プロジェクトが同日掲載された。Go製CLI「Aqua」とセマンティックルーティングを実装する「Agent Semantic Protocol」は、MCPが解決できないP2P・非同期通信の課題に取り組む。
Claude Sonnet 4.6、無料・Proプランのデフォルトモデルに——社内テストでOpus 4.5を59%の確率で上回る
Anthropicは2026年2月17日にリリースしたClaude Sonnet 4.6を、claude.aiの無料・Proプランのデフォルトモデルに設定した。価格はSonnet 4.5と同額の$3/$15 per 1Mトークン。社内評価ではコーディングエージェント用途でOpus 4.5を上回る結果が出ている。
GoogleがOpenClaw経由のGemini利用ユーザーのアカウントを永久停止——月額$250請求継続のまま
2026年2月23日、Hacker Newsで140pt/107コメントを集めたレポートによると、GoogleはOpenClaw(サードパーティクライアント)経由でGeminiを使用していたGoogle AI Pro/Ultraユーザーを予告なしに永久停止した。技術的・経済的背景を整理する。