dingtalk_channel_connect について
dingtalk_channel_connectは、有頭ブラウザーでDingTalkアプリを作成・公開し、認証情報をQwenPawのチャンネルに登録する手順を案内するスキルです。ログイン時は処理を止め、QwenPawの設定変更はユーザー自身に委ねます。
主な機能
- 01有頭ブラウザーでの操作を必須化
- 02ログイン時に停止し確認を待機
- 03DingTalkボットを設定して公開
- 04ボット画像を検証してアップロード
- 05QwenPawの認証情報を手動設定する手順
活用シーン
- 01QwenPaw用DingTalkボットの作成
- 02アプリ設定変更の公開
- 03DingTalk認証情報のチャンネル登録
- 04ユーザーログイン後のブラウザー操作再開
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ agentscope-ai/ qwenpaw --skill dingtalk_channel_connectインストール後、Claude Code で/dingtalk_channel_connectを入力して読み込まれたか確認します。
詳細
DingTalk チャネルの自動接続(画面表示ブラウザー)
このスキルは、画面表示ブラウザーを使用して DingTalk アプリケーションを作成し、QwenPaw チャネルをバインドします。
必須ルール
- 必ず画面表示モードで起動してください:
{"action": "start", "headed": true}
-
ログイン画面が表示されたら、必ず一時停止してください:
- ページにログイン画面(ログインの案内、QR コードログイン、電話番号/パスワードログインなど)が表示された場合は、自動操作を直ちに停止してください。
- まずユーザーに手動でログインするよう明確に案内し、「ログイン完了/続行」と返信するまで待機してください。
- ユーザーが確認するまで、後続の手順に進まないでください。
-
アプリケーションの設定変更は、新しいバージョンを作成して公開した後にのみ反映されます:
- ボット関連の情報を設定した後は、必ずボットを公開してください。
- 新しいアプリケーションを作成する場合も、アプリケーション情報(名前、説明、アイコン、ボット設定など)を変更する場合も、最後に**「新しいバージョンを作成+公開」**を必ず実行してください。
- 公開が完了していない場合は、設定が有効になったと伝えないでください。
実行前の確認(最初に必ず行うこと)
自動クリックを始める前に、ユーザーに「設定の確認」を行い、カスタマイズできる項目、画像の仕様、デフォルト値を明確に伝えてください。以下の形式で確認します。
-
ユーザーがカスタマイズできる項目:
- アプリケーション名
- アプリケーションの説明
- ボットアイコン画像の URL またはローカルパス
- ボットメッセージのプレビュー画像の URL またはローカルパス
-
画像の仕様を明確に(目立つように)伝えてください:
- ボットアイコン:JPG/PNG のみ、
240*240px以上、比率1:1、2MB未満、角丸加工なし。 - ボットメッセージのプレビュー画像:形式は
png/jpeg/jpg、サイズは2MB以下。
- ボットアイコン:JPG/PNG のみ、
-
デフォルト値を明確に伝えてください(ユーザーが指定しない場合は自動的に使用します):
- アプリケーション名:
QwenPaw - アプリケーションの説明:
Your personal assistant - ボットアイコン:
https://img.alicdn.com/imgextra/i4/O1CN01M0iyHF1FVNzM9qjC0_!!6000000000492-2-tps-254-254.png - ボットメッセージのプレビュー画像:
https://img.alicdn.com/imgextra/i4/O1CN01M0iyHF1FVNzM9qjC0_!!6000000000492-2-tps-254-254.png
- アプリケーション名:
-
ユーザーがカスタム値を指定しない場合は、最初に必ず次のように明示して返信してください:
- 「すべてデフォルト設定(QwenPaw/Your personal assistant/デフォルト画像)を使用します。これより処理を進めます。」
画像アップロードの手順(URL とパスの両方に対応)
-
ユーザーがローカルパスを指定した場合は、そのパスを直接アップロードに使用してください。
-
ユーザーが画像リンクを指定した場合は、まずローカルの一時ファイルにダウンロードしてからアップロードしてください。
-
アップロード操作は、次の順序で行ってください:
- まずページのアップロード項目をクリックして、ファイル選択ダイアログを表示します。
- 次に、ローカルパスの配列(
paths_json)を指定してfile_uploadを呼び出します。
-
画像の仕様(寸法、比率、サイズ、形式)が合わずアップロードに失敗した場合:
- 自動操作を直ちに一時停止してください。
- 条件を満たす画像を手動でアップロードするよう、ユーザーにはっきり依頼してください。
- ユーザーが「アップロード完了/続行」と確認したら、現在の手順から再開してください。
アップロード時の実用的なヒント
file_uploadのpaths_jsonは「JSON 文字列配列」である必要があります。エスケープに注意してください:
{
"action": "file_upload",
"paths_json": "[\"xxx.png\"]",
"frame_selector": "iframe[src*=\"/fe/app?isHideOuterFrame=true\"]"
}
-
ページが iframe 内にある場合は、
frame_selectorを含めることを推奨します。含めないと、アップロードコントロールが見つからなかったり、ファイル選択ダイアログが表示されなかったりする可能性があります。 -
file_uploadを呼び出す前に、必ずアップロード項目をクリックしてください。直接呼び出すと、次のエラーになります:No chooser. Click upload then file_upload.
-
ボットアイコン領域で要素を特定する際に利用できる一般的な構造上の特徴(DingTalk コンソールでは、中国語の UI ラベルが表示される場合があります):
text: "* 机器人图标"(Bot Icon)button: "使用应用图标"(Use App Icon)button: "avatar"(通常、内部にimg "avatar"が含まれています)
-
スナップショットに「使用应用图标」(「Use App Icon」)と「avatar」の両方が表示されている場合は、アップロードを開始するために
avatarボタンをクリックしてからfile_uploadを呼び出してください。
自動化の流れ
ステップ 1:DingTalk 開発者コンソールを開く
- ヘッド付きモード(
headed: true)でブラウザーを起動します https://open-dev.dingtalk.com/に移動しますsnapshotを呼び出して、ログインが必要か確認します
ログインが必要な場合は、次のメッセージを表示して一時停止します。
DingTalk 開発者コンソールへのログインが必要です。自動操作を一時停止しました。開いたブラウザーでログインを完了してください。完了したら「continue」と返信してください。現在のページから操作を再開します。
ステップ 2:社内向け企業アプリケーションを作成する
ユーザーがログインを確認した後、操作を続行します。
- 作成ページに移動します。
- アプリケーション開発 → 社内向け企業アプリケーション → DingTalk アプリケーション → アプリケーションを作成
- アプリケーション情報を入力します(ユーザーが指定した値を優先し、指定がない場合はデフォルト値を使用します)。
- アプリケーション名:デフォルトは
QwenPaw - アプリケーションの説明:デフォルトは
Your personal assistant
- アプリケーション名:デフォルトは
- 保存してアプリケーションを作成します
ページ上のテキストや構成が想定と異なる場合は、snapshot を再実行し、表示されているテキストの意味に基づいて要素を見つけ直します。
ステップ 3:ボット機能を追加して公開する
- アプリケーション機能 の下にある アプリケーション機能を追加 をクリックし、ボット を見つけて追加します
- ボット設定 の右側にあるスイッチをオンにします
- ボット名、ボット概要、ボットの説明 を入力します
- ボットアイコン をアップロードします(ユーザー指定の画像、またはデフォルト画像)。
- ボットアイコンのラベルの下にある画像をクリックします
- デフォルト画像 URL:
https://img.alicdn.com/imgextra/i4/O1CN01M0iyHF1FVNzM9qjC0_!!6000000000492-2-tps-254-254.png - リンクの場合は、まずローカルにダウンロードしてからアップロードします
- 画像が仕様を満たさない場合は一時停止し、仕様に合った画像をユーザーが手動でアップロードするよう依頼してから続行します
- ボットメッセージのプレビュー画像 をアップロードします(ユーザー指定の画像、またはデフォルト画像)。
- ボットメッセージのプレビュー画像ラベルの下にある画像をクリックします
- デフォルト画像 URL:
https://img.alicdn.com/imgextra/i4/O1CN01M0iyHF1FVNzM9qjC0_!!6000000000492-2-tps-254-254.png - リンクの場合は、まずローカルにダウンロードしてからアップロードします
- 画像が仕様を満たさない場合は一時停止し、仕様に合った画像をユーザーが手動でアップロードするよう依頼してから続行します
- メッセージの受信モードが
Stream Modeに設定されていることを確認します(中国語 UI ではStream 模式と表示される場合があります) - 公開 を選択します。確認ダイアログが表示されるので、公開を選択します。注:次のステップに進む前に、ボットを必ず公開してください
ステップ 4:バージョンを作成して公開する
アプリケーションのリリース -> バージョン管理とリリースに移動します- 新しいバージョンを作成します(設定を変更するたびに必要です)
- バージョンの説明を入力し、アプリケーションの公開範囲を全従業員に設定します
- ページの指示に従って公開を完了します。新しいダイアログが表示されるので、公開を確定します
- 公開が成功したステータスを確認してから、後続のステップに進むか、「設定が有効になりました」とユーザーに伝えます
ステップ 5:認証情報を取得する
基本情報 -> 認証情報と基本情報に移動しますClient ID(AppKey)とClient Secret(AppSecret)はこのページにあることをユーザーに伝えます。こちらから変更は行わず、ユーザー自身でバインドするよう案内します
QwenPaw のバインド方法
認証情報を取得した後、次のいずれかの方法を選ぶようユーザーに案内します。
-
コンソールのフロントエンドで設定する方法:
- QwenPaw コンソールで
Control -> Channels -> DingTalkに移動します Client IDとClient Secretを入力します
- QwenPaw コンソールで
-
設定ファイルを使用する方法:
"dingtalk": {
"enabled": true,
"bot_prefix": "[BOT]",
"client_id": "Your Client ID",
"client_secret": "Your Client Secret"
}
パス:~/.qwenpaw/config.json の channels.dingtalk セクションです。
認証情報の受け渡し要件(必須)
- エージェントの役割は、ユーザーを認証情報ページに案内し、
Client IDと実際のClient Secretを取得して表示することに限られます。 - エージェントは、
consoleの設定や~/.qwenpaw/config.jsonを自発的に変更してはいけません。 - 次のいずれかの方法で、ユーザー自身が認証情報を手動で入力するよう案内する必要があります。
- コンソールのフロントエンド:
Control -> Channels -> DingTalk - 設定ファイル:
~/.qwenpaw/config.jsonのchannels.dingtalkフィールドを編集
- コンソールのフロントエンド:
ブラウザツールの使用手順
通常は、次の順序で実行します。
headed: trueを指定してstartopensnapshot- 必要に応じて
click/type/select_option/press_key - ページ遷移後はこまめに
snapshot - 完了したら
stop
安定性と復旧の方針
- 最新の
snapshotにあるrefの使用を優先し、必要な場合にのみselectorを使用します。 - 重要なクリックやナビゲーションの後は、短時間の待機(
wait_for)を入れ、直後にsnapshotを再実行します。 - セッションが期限切れになった場合や、フローの途中で再ログインが必要になった場合は、いったん停止し、ユーザーがログインするまで待ってから現在の手順を再開します。
- テナント権限や管理者の承認によって自動化がブロックされた場合は、妨げとなっている内容を明確に説明し、再開前にその手順を手動で完了するようユーザーに依頼します。