概要
DataClaw は、WeCom のメッセージ受信モードとして、以下の 2 つをサポートしています。
機能 | URL コールバックモード | 長寿命接続モード |
接続方式 | WeCom がコールバック URL にメッセージをプッシュします | インスタンスが WeCom サーバーに接続します |
パブリックネットワークエンドポイント | 必須 (自動的に作成されます) | 不要 |
適用シナリオ | コンテナ化されたデプロイ、きめ細かなアクセス制御 | 迅速な統合、パブリックネットワーク不要 |
IP アクセス制御 | IP ホワイトリストをサポート | 該当なし |
認証方式 | API キー | ボット ID + シークレット |
URL コールバックモード:WeCom サーバーは、HTTPS コールバック URL を介して DataClaw インスタンスにユーザーメッセージをプッシュします。このモードは、受信 IP に対するきめ細かな制御を必要とするシナリオに適しています。
長寿命接続モード:DataClaw インスタンスが WeCom サーバーに接続し、永続的な接続を確立します。このモードは、パブリックネットワークエンドポイントを必要としない迅速な統合シナリオに適しています。
前提条件
DataClaw インスタンスが作成済みで、実行中の状態であること。
WeCom の管理コンソールを管理する権限を持っていること。
WeCom ボットの作成
WeCom 管理コンソールに移動します。 左側のナビゲーションペインで、をクリックします。 [ボットの作成]をクリックし、次に[手動で作成]をクリックします。
API モードでインテリジェントボットを作成します。
インテリジェントボットの作成ページで、一番下までスクロールし、 [API モードで作成] をクリックします。
次のパラメーターを設定し、 [保存] をクリックします。
可視範囲:ボットの表示範囲を設定します。
API 設定: [接続方法] セクションで、接続モードを選択します。
長寿命接続を使用:インスタンスが WeCom サーバーに接続します。 [設定方法] セクションの [シークレット] で、 [クリックして取得] をクリックし、ボット ID とシークレットを保存します。
URL コールバックを使用:WeCom サーバーが HTTPS を介してコールバック URL にメッセージをプッシュします。ボット ID やシークレットを取得する必要はありません。DataWorks コンソールでインスタンスを設定する際に、トークンと EncodingAESKey を手動で設定するだけです。
権限:ボットに必要な権限を設定します。
長寿命接続モードでの設定
DataWorks コンソールに戻り、インスタンス詳細ページの [基本情報] タブにある [チャネル設定] セクションに移動します。
[チャネル設定] セクションで、チャネルとして [WeCom] を選択します。
接続モードとして [長寿命接続を使用] を選択します。
ボット ID とシークレット (WeCom 管理コンソールから取得) を入力します。
[保存] をクリックします。
URL コールバックモードでの設定
DataWorks AI アシスタントサービスインスタンスの設定
DataWorks コンソールに戻り、インスタンス詳細ページの [基本情報] タブにある [チャネル設定] セクションに移動します。
[チャネル設定] セクションで、チャネルとして [WeCom] を選択します。
接続モードとして [URL コールバックを使用] を選択します。
次のパラメーターを入力するか、ランダムに生成します。
パラメーター
説明
フォーマット要件
トークン
リクエストの送信元を検証し、リクエストが WeCom サーバーから送信されていることを確認します。
3~32 文字 (英字または数字)
EncodingAESKey
メッセージの内容を暗号化し、送信中にデータが傍受または改ざんされるのを防ぎます。
フォーマット要件:正確に 43 文字 (数字または英字) である必要があります。
暗号化標準:AES-256-CBC アルゴリズム。重要トークンと EncodingAESKey は安全に保管し、第三者に開示しないでください。
トークンと EncodingAESKey は、DataWorks コンソールまたは WeCom 管理コンソールのどちらでも生成できます。一方のコンソールで生成した後、その値をもう一方にコピーします。両方のコンソールでパラメーター値が同一である必要があります。
IP ホワイトリストの設定:コールバック URL へのアクセスを、指定された IP 範囲のみに制限します。IP ホワイトリストには、WeCom サーバーの IP を含める必要があります。取得方法の詳細については、「WeCom コールバック IP ドキュメント」をご参照ください。
[保存] をクリックします。
設定を保存した後、インスタンスのステータスが「実行中」に変わるまで待ちます。
インスタンス詳細ページの WeCom チャネル情報で、次の形式のコールバック URL (callbackUrl) を表示できます。
https://ai-assistants.cn-beijing.data.aliyuncs.com/xxxx/plugins/wecom/bot?apikey=sk-ai-assistants-xxxxx次のステップで WeCom 管理コンソールを設定する際に使用する、完全なコールバック URL (?apikey=... パラメーターを含む) をコピーしてください。ページに「コールバック設定に失敗しました」と表示された場合は、失敗の原因を確認し、設定を再度保存してください。
WeCom 管理コンソールでの設定
WeCom 管理コンソールにログインします。
[セキュリティと管理] > [管理ツール] > [インテリジェントボット] > [ボットの作成] に移動し、 [API モードで作成] に切り替えます。
接続方法を [URL コールバック] に設定します。
次の 3 つの項目を入力します。
設定項目
値
説明
URL
DataWorks コンソールからコピーしたコールバック URL
?apikey=...パラメーターを含む完全な URLトークン
DataWorks コンソールで設定したトークンと同じである必要があります
両方のコンソールで同一である必要があります
EncodingAESKey
DataWorks コンソールで設定した EncodingAESKey と同じである必要があります
両方のコンソールで同一である必要があります (43 文字)
[保存] をクリックします。
保存後、WeCom サーバーは自動的にコールバック URL に検証リクエストを送信します。
検証成功:WeCom 管理コンソールに成功メッセージが表示され、インスタンスはメッセージの受信を開始できます。
検証に失敗しました:Token と EncodingAESKey が完全に一致しているか、インスタンスが実行中の状態であるか、コールバック URL が完全にコピーされているか (
?apikey=の部分を含む)、IP ホワイトリストが設定されているかを確認してください。
IP ホワイトリスト
IP ホワイトリストは、不正なリクエストを防ぐために、コールバック URL にアクセスできる IP を制限します。
設定方法
インスタンス編集ページの [IP ホワイトリスト] セクションで、以下のように設定します。
IP の追加: IP アドレスまたは CIDR ブロック (
101.226.62.xxや10.0.0.0/8など) を入力し、[追加] をクリックします。IP の削除:ホワイトリスト内の [削除] をクリックします。
WeCom 管理コンソールから最新のコールバック IP リストを取得し、コールバックリクエストがブロックされないようにホワイトリストに追加することを推奨します。
ホワイトリストが空の場合の動作
ホワイトリストが一度も設定されていない場合:IP アクセス制御は作成されず、すべての IP がコールバック URL にアクセスできます。
すべてのホワイトリスト IP を削除すると、
127.0.0.1が自動的に追加され、すべての外部アクセスがブロックされます (これにより、コールバックエンドポイントが一時的に無効になります)。アクセスを復元するには、WeCom コールバック IP 範囲を再度追加してください。
API キーのローテーション
API キーが漏洩した場合や定期的にローテーションする必要がある場合は、 [URL コールバック] ボタンにカーソルを合わせ、ポップアップウィンドウの更新ボタンをクリックして API キーを更新します。更新後:
新しい API キーが生成され、古いコールバック URL は直ちに無効になります。
WeCom 管理コンソールで新しいコールバック URL を更新する必要があります。
ローテーション後は、WeCom 管理コンソールでコールバック URL を更新してください。そうしないと、メッセージを受信できなくなります。
ボットのテスト
グループチャットで [メンバーを追加] をクリックし、名前でボットを検索してグループに追加します。
ボットがいるグループチャットで、ボットに @メンションしてストリーミング会話を開始します。
URL コールバックモードのテスト:設定が成功すると、ユーザーが WeCom でロボットにメッセージを送信した際に、DataClaw インスタンスがそのメッセージをリアルタイムで受信して処理します。インスタンス詳細ページでチャネルステータスを確認できます。ステータスが [接続済み] であれば、設定は成功です。
モードの切り替え
長寿命接続から URL コールバックへの切り替え
チャネル設定で、接続モードを [URL コールバックを使用] に変更します。
トークンと EncodingAESKey を入力します。
[保存] をクリックした後、「WeCom 管理コンソールでの設定」の説明に従って、WeCom 管理コンソールの設定を完了します。
URL コールバックから長寿命接続への切り替え
チャネル設定で、接続モードを [長寿命接続を使用] に変更します。
ボット ID とシークレットを入力します。
[保存] をクリックすると、Webhook ゲートウェイリソースが自動的にクリーンアップされます。
チャネル設定を変更すると、インスタンスが再起動されます。再起動後、ワークスペースデータ (メモリとスキル) のみが保持されます。カスタム依存関係を再インストールする必要があります。
よくある質問
コールバック URL の検証が失敗する場合
トークンと EncodingAESKey が、DataWorks コンソールで設定したものと完全に一致しているか確認してください。
インスタンスが実行中の状態であり、コールバック設定でエラーが表示されていないことを確認してください。
コールバック URL が (
?apikey=...の部分を含めて) 完全にコピーされていることを確認してください。
設定は成功したが、メッセージが受信できない場合
IP ホワイトリストに WeCom のコールバック IP 範囲が含まれているか確認してください。
API キーがローテーションされているか確認してください (ローテーションされている場合は、WeCom 管理コンソールでコールバック URL を更新してください)。
インスタンス詳細ページで、コールバック関連のエラーメッセージがないか確認してください。
インスタンスを削除した後もコールバックがアクティブなままの場合
インスタンスを削除すると、すべてのゲートウェイリソースが自動的にクリーンアップされ、コールバック URL は直ちに無効になります。追加の操作は必要ありません。
ホワイトリストを削除した後にコールバックが機能しない場合
すべてのホワイトリスト IP が削除されると、127.0.0.1 が自動的に追加され、すべての外部アクセスがブロックされます。アクセスを復元するには、WeCom コールバック IP 範囲を再度追加してください。
WeCom サーバーの IP 範囲を取得するにはどうすればよいですか?
「WeCom コールバック IP ドキュメント」をご参照ください。