メインコンテンツへスキップ
現段階では「QR コードバインディング」によるチャネル認可の利用を推奨します。必要でない限り、認証情報の直接設定は推奨しません。DingTalk、Feishu、WeCom、個人 WeChat のいずれも QR コードバインディングをサポートします。Channel 作成時に channel_config.credentials を省略し、QR Session による QR スキャン認可でバインディングを完了できます。App Secret などの機微な認証情報をアプリ側に保存する必要がなく、セキュリティ性が高く、運用コストも低くなります。QR コードバインディングでは要件を満たせない場合(無人のサーバーサイド自動化など)のみ、以下の各チャネルの「直接認証情報」方式を検討してください。

QR コードバインディングのフロー(推奨)

QR コードバインディングは dingtalkfeishuwecomwechat のすべてのチャネルで利用でき、手順は次のとおりです:
  1. Channel を作成する: Channel の作成 API を呼び出し、namechannel_typeidentity_idtemplate_id を渡します。channel_config.credentials は省略します
  2. QR Session を作成する: Channel QR Session の作成 API を呼び出し、qr_code_image_base64(QR コード画像)または qr_code_content(認可 URL)、および推奨ポーリング間隔 poll_interval_seconds を取得します。
  3. QR コードを表示して認可する: QR コードをユーザーに表示し、対応するチャネルのクライアントで QR コードを読み取り、認可を確認します。
  4. 認可状態をポーリングする: poll_interval_seconds の間隔で Channel QR Session の取得 を呼び出し、statusconfirmed になるまでポーリングします(他の状態: waitingscannedexpireddeniederror)。
  5. バインディングを完了する: status=confirmed の後に Channel の詳細を更新すると、binding_statusbound になり、受信メッセージを受け取って自動返信できるようになります。
QR コードの有効期限は短めです。expired または denied になった場合は、QR Session を再作成して再度読み取ってください。

直接認証情報による連携(必要に応じて)

直接認証情報を使用する必要がある場合は、対応する開放プラットフォームでアプリ / ボットを作成し、権限を設定して認証情報を取得したうえで、Channel の作成 API の channel_config.credentials に渡します。各チャネルの channel_type と認証情報フィールドの対応:
チャネルchannel_typechannel_config.credentials フィールドQR バインディングをサポート
DingTalkdingtalkclient_idclient_secretはい(推奨)
Feishufeishuapp_idapp_secretはい(推奨)
WeComwecombot_idsecretはい(推奨)
個人 WeChatwechat認証情報は不要QR バインディングのみ
認証情報は Channel の作成 / 更新時にのみ書き込まれ、平文では返されません。

DingTalk

DingTalk アプリを作成する

  1. DingTalk 開放プラットフォーム にアクセスします。開発者権限を持つ組織を選択するか、いずれかの組織を選択して開発者権限を取得してください。適切な組織がない場合は、モバイル版 DingTalk で QR コードをスキャンして組織を素早く作成できます。
  2. トップナビゲーションの アプリ開発 をクリックし、DingTalk アプリのページで アプリを作成 をクリックします。

DingTalk ボットを作成する

  1. アプリを作成したら、左側ナビゲーションで アプリ機能を追加 を選択し、右側のボットカード下の 追加 ボタンをクリックします。
  2. ボット設定ページで、ボット設定を有効にします。
  3. メッセージ受信モードStream モード を選択し、公開 をクリックしてボット設定を完了します。

権限を設定する

アプリの 権限管理 で、以下の権限を有効にします:
権限説明
Card.Streaming.Writeカードメッセージのストリーミング書き込み
Card.Instance.Writeカードインスタンスの作成 / 更新
qyapi_robot_sendmsgボットのメッセージ送信

アプリを公開する

  1. 左側ナビゲーションで バージョン管理と公開 を選択し、新規バージョンを作成 をクリックします。
  2. アプリのバージョン番号とバージョン説明を入力し、業務のニーズに応じてアプリの利用可能範囲を選択し、保存 をクリックして公開を完了します。
利用可能範囲を全社員に設定すると、公開後、現在の企業内のすべての社員に対してアプリが表示されます。

認証情報を取得する

左側ナビゲーションの 認証情報と基本情報 ページで Client IDClient Secret を記録します。これらはそれぞれ API の client_idclient_secret に対応します。

Feishu

Feishu アプリを作成する

  1. Feishu 開放プラットフォーム にアクセスし、右上の 開発者コンソール をクリックします。
  2. 企業向けカスタムアプリを作成 をクリックし、必要な情報を入力して 作成 をクリックします。

ボットの追加と設定

  1. 左側ナビゲーションで アプリ機能を追加 を選択し、ボットカードの 追加 ボタンをクリックします。
  2. ボット設定カードの「利用の始め方」の右側にある編集アイコンをクリックします。
  3. メッセージカードのコールバックリクエスト方式 領域で 設定へ をクリックし、購読方式として 長時間接続によるコールバック受信 を選択して保存します。
  4. イベント設定 をクリックし、購読方式として同様に 長時間接続によるコールバック受信 を選択して保存します。
  5. イベント設定ページで、次の 4 つのイベントを追加して保存します:
    • ボットがグループに参加
    • ボットがグループから削除
    • メッセージ既読
    • メッセージ受信

権限を設定する

権限管理 > 権限の有効化権限の一括インポート / エクスポート をクリックし、以下の JSON を貼り付けて必要な権限をワンクリックでインポートし、確認後 申請して有効化 をクリックします:
{
  "scopes": {
    "tenant": [
      "contact:contact.base:readonly",
      "docx:document:readonly",
      "im:chat:read",
      "im:chat:update",
      "im:message.group_at_msg:readonly",
      "im:message.p2p_msg:readonly",
      "im:message.pins:read",
      "im:message.pins:write_only",
      "im:message.reactions:read",
      "im:message.reactions:write_only",
      "im:message:readonly",
      "im:message:recall",
      "im:message:send_as_bot",
      "im:message:send_multi_users",
      "im:message:send_sys_msg",
      "im:message:update",
      "im:resource",
      "application:application:self_manage",
      "cardkit:card:write",
      "cardkit:card:read"
    ],
    "user": [
      "contact:user.employee_id:readonly",
      "offline_access",
      "base:app:copy",
      "base:field:create",
      "base:field:delete",
      "base:field:read",
      "base:field:update",
      "base:record:create",
      "base:record:delete",
      "base:record:retrieve",
      "base:record:update",
      "base:table:create",
      "base:table:delete",
      "base:table:read",
      "base:table:update",
      "base:view:read",
      "base:view:write_only",
      "base:app:create",
      "base:app:update",
      "base:app:read",
      "board:whiteboard:node:create",
      "board:whiteboard:node:read",
      "calendar:calendar:read",
      "calendar:calendar.event:create",
      "calendar:calendar.event:delete",
      "calendar:calendar.event:read",
      "calendar:calendar.event:reply",
      "calendar:calendar.event:update",
      "calendar:calendar.free_busy:read",
      "contact:contact.base:readonly",
      "contact:user.base:readonly",
      "contact:user:search",
      "docs:document.comment:create",
      "docs:document.comment:read",
      "docs:document.comment:update",
      "docs:document.media:download",
      "docs:document:copy",
      "docx:document:create",
      "docx:document:readonly",
      "docx:document:write_only",
      "drive:drive.metadata:readonly",
      "drive:file:download",
      "drive:file:upload",
      "im:chat.members:read",
      "im:chat:read",
      "im:message",
      "im:message.group_msg:get_as_user",
      "im:message.p2p_msg:get_as_user",
      "im:message:readonly",
      "search:docs:read",
      "search:message",
      "space:document:delete",
      "space:document:move",
      "space:document:retrieve",
      "task:comment:read",
      "task:comment:write",
      "task:task:read",
      "task:task:write",
      "task:task:writeonly",
      "task:tasklist:read",
      "task:tasklist:write",
      "wiki:node:copy",
      "wiki:node:create",
      "wiki:node:move",
      "wiki:node:read",
      "wiki:node:retrieve",
      "wiki:space:read",
      "wiki:space:retrieve",
      "wiki:space:write_only"
    ]
  }
}

アプリを公開する

  1. 左側ナビゲーションで バージョン管理と公開 を選択します。
  2. バージョンを作成 をクリックし、必要な情報を入力して 保存 をクリックします。

認証情報を取得する

アプリの 認証情報と基本情報 ページで App IDcli_xxx のような形式)と App Secret をコピーします。これらはそれぞれ API の app_idapp_secret に対応します。

WeCom

スマートボットを作成する

  1. WeCom 管理コンソール にアクセスし、左側ナビゲーションで セキュリティと管理 > 管理ツール をクリックし、ボットを作成 をクリックしてから 手動で作成 をクリックします。
  2. ボットの表示範囲を設定します。
  3. ページの下部までスクロールして API モードで作成 をクリックし、接続方法として 長時間接続を使用 を選択します。

認証情報を取得する

設定方法の Secret 領域で クリックして取得 をクリックし、Bot IDSecret を記録します。これらはそれぞれ API の bot_idsecret に対応します。

個人 WeChat

個人 WeChat は QR コードバインディング のみをサポートし、開放プラットフォームでアプリを作成する必要も、直接認証情報を設定する必要もありません。Channel 作成時に channel_typewechat を渡し、上記の QR コードバインディングのフロー(推奨) に従って認可を完了してください。

関連

Channel の作成

Channel QR Session の作成

Channel の一覧