> ## Documentation Index
> Fetch the complete documentation index at: https://help.dingtalk.io/llms.txt
> Use this file to discover all available pages before exploring further.

# ショートカット入口（グループプラグイン）の作成

> グループプラグインのショートカット入口を作成し、ユーザーがどのグループでどのプラグインを使用したかを把握できます

本記事では、ショートカット入口の作成方法について説明します。

## ショートカット入口（グループプラグイン）とは

ユーザーがグループ内でプラグイン入口をクリックすると、グループに関するパラメーターが付加されます。これにより、開発者は「誰が」「どのグループで」「いつ」「どの具体的なプラグインを」クリックしたかを特定できます。これを活用することで、ソリューションプロバイダーは高度にインテリジェントかつ目的の明確な業務サービスを実現できます。

<Warning>
  ## グループプラグインの作成
</Warning>

1. [DingTalk 開発者バックエンド](https://open-dev.dingtalk.io/#/index) にログインします。
2. **開発者バックエンド** ページで、**シーングループ** を選択し、**グループプラグイン** の作成をクリックします。
3. **グループプラグイン** を新規作成し、**新規作成** をクリックして、審査の完了を待ちます。

   **説明**

   * 審査時間は、営業日 12 時間以内に承認が完了します。

   グループプラグインを設定するリンクは異なり、DingTalk ワークベンチ、サイドバー、外部ブラウザなどでリンクを開くことに対応しています。

   | 開き方                          | 設定リンク                                                                                                                                                                                                |
   | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
   | DingTalk ワークベンチでグループプラグインを開く | dingtalk://dingtalkclient/action/openapp?corpid=dingxxxxxxxxxxx&**container\_type=work\_platform**\&app\_id=0\_140444xxxxx\&redirect\_type=jump\&redirect\_url=https%3A%2F%2Fding-doc.dingtalk.io%2F |
   | サイドバーでグループプラグインを開く           | dingtalk://dingtalkclient/action/openapp?corpid=dingxxxxxxxxxxx&**container\_type=slide\_panel**\&app\_id=0\_140444xxxxx\&redirect\_type=jump\&redirect\_url=https%3A%2F%2Fding-doc.dingtalk.io%2F   |
   | 外部ブラウザでグループプラグインを開く          | dingtalk://dingtalkclient/action/openapp?corpid=dingxxxxxxxxxxx\&con**tainer\_type=browser**\&app\_id=0\_140444xxxxx\&redirect\_type=jump\&redirect\_url=https%3A%2F%2Fding-doc.dingtalk.io%2F       |

## ショートカット入口リンクの構築

ショートカット入口（グループプラグイン）は業務機能を備えた DingTalk リンクです。開発者は、自身のマイクロアプリの実際のシナリオと、グループ内でユーザーが利用する際の具体的なニーズに基づいて、ショートカット入口リンクを組み立てる必要があります。

ショートカット入口の名称は最大 4 文字まで対応しています。ショートカット入口リンクには非常に多くの機能がありますが、開発者がリンクパラメーターを通じて組み立てる必要があります。たとえば、モバイル端末でのページの開き方（ページのプッシュ、ポップアップなど）から、PC 端末でのページ遷移ロジック（新しいコンテナで開く、ページを左へスライドさせるなど）まで、すべてリンクパラメーターの設定によって実現します。

* **H5 ページへリダイレクト**

  link（サイドバー / コンテナのスライド表示）

  例：

  ```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
  dingtalk://dingtalkclient/page/link?dd_mode=push&pc_slide=true&url=http%3a%2f%2fomsdevdingtalkf.zjk.taeapp.com%2findex.html%3fcorpid%3d$CORPID$%26dd_nav_bgcolor%3dffff943e%2f%23%2fgroup-plugin%3fcorpid%3d$CORPID$%26openConversationId%3d$DOUBLE_ENCCID$%26dd_nav_bgcolor%3dffff943e%26pluginType%3d3%26appid%3d6397
  ```

  パラメーター説明：

  | パラメーター    | 説明                                                                     |
  | --------- | ---------------------------------------------------------------------- |
  | url       | ページ URL。必ず urlencode してください。                                           |
  | dd\_mode  | iOS 端末で使用。  - push：iOS で左から右へコンテナをプッシュ - present：iOS で下から上へコンテナをポップアップ |
  | pc\_slide | pc\_slide=true の場合、PC 端末ではアプリ内でこの URL を開きます。                           |
* **マイクロアプリへリダイレクト**

  openapp（ワークベンチ、ブラウザ、左スライドパネルなど）

  例：

  ```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
  dingtalk://dingtalkclient/action/openapp?corpid=$CORPID$&container_type=work_platform&app_id=3204&redirect_type=emit_params&params=&redirect_url=https%3A%2F%2Ftestt2.wmnetwork.cc%2Fmanage%2Findex%3Fmid%3Dwfp40mx9
  ```

  パラメーター説明：

  | パラメーター               | 説明                                                                                                                                         |
  | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
  | container\_type      | 表示するコンテナ：  - browser：ブラウザ - slide\_panel：左スライドパネル - work\_platform：ワークベンチ                                                                  |
  | corpid               | 企業の corpid。                                                                                                                                |
  | app\_id              | - サードパーティ社内アプリ の場合は appId を入力します。appId は管理画面で確認できます。  - 企業自社開発アプリ の場合は 0\_agentId を入力します。数字の 0、下線、agentId を連結したものです。agentId はアプリ詳細で確認できます。 |
  | redirect\_type       | リダイレクトタイプ：  - jump：redirect\_url を直接開く - emit\_params：イベントを発行する方式                                                                          |
  | params               | パラメーター。初回起動時、このパラメーターをリダイレクト URL のパラメーターリストに追加する必要があります。                                                                                   |
  | redirect\_url        | リダイレクト URL。urlEncode が必要です。                                                                                                                |
  | slide\_panel\_option | 左スライドパネルのパラメーター（PC 版独自）。例：`{"width":500,"showAppPage":true}`（`width` はサイドバーの幅、`showAppPage` はウェブページを表示するかどうか）                              |
* **ミニプログラムへリダイレクト**

  1. **共通パラメーター（open\_micro\_app と open\_mini\_app の両方に対応）**

     | パラメーター        | 必須                                     | 説明                                                                                                                                                                                                                  |
     | ------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
     | appId         | agent\_id とどちらかを選択。両方ある場合は app\_id が優先 | マイクロアプリ ID（ミニプログラム ID ではないことに注意）。ISV アプリではこの ID を使用します。                                                                                                                                                             |
     | page          | いいえ                                    | ミニプログラムの page アドレス。GET パラメーターを追加可能。デフォルトはミニプログラムのホームページ。                                                                                                                                                            |
     | query         | いいえ                                    | ミニプログラムの起動パラメーター。App の onLaunch / onShow コールバックで取得可能。  ミニプログラム起動時、クライアントはデフォルトで corpId パラメーターを付加するため、業務側で corpId を指定しても上書きされます。                                                                                     |
     | containerType | いいえ                                    | PC 端末専用パラメーター。以下のオプションがあります：  - browser：ブラウザ - slide\_panel（デフォルト）：左スライドパネル - work\_platform：ワークベンチ - mobile：モバイル端末への誘導                                                                                             |
     | title         | いいえ                                    | PC 端末専用パラメーター。title を表示するために使用。                                                                                                                                                                                     |
     | source        | いいえ                                    | 追加元（サーバーサイドからパッケージを取得する必要がある場合のみ使用）：  - debug：実機デバッグ版 - trial：体験版                                                                                                                                                   |
     | version       | いいえ                                    | バージョン番号。                                                                                                                                                                                                            |
     | ddMode        | いいえ                                    | ミニプログラム起動時のトランジション方式。  - push：プッシュ方式 - present：ポップアップ方式 - float：フローティング方式 - pop：ポップアップ方式（pop view） 指定しない場合、クライアントはデフォルトのトランジション方式で起動します。クライアント v4.5.8 バージョンよりグレーリリース。float と pop は v4.6.35（20190624）バージョンよりグレーリリース。 |
     | mainTask      | いいえ                                    | **Android クライアント** のみ必要。  値は「true」または「false」、デフォルトは false。  「true」を指定すると、DingTalk のメイン Task と同じ Task として扱われ、保活処理が行われなくなります。  クライアント 4.6.3 バージョンより対応。                                                                |
     | ddJointNavi   | いいえ                                    | ナビゲーションバーのスタイルを設定。これを設定すると ddMode のロジックを上書きします。  Android & iOS：「0」または「1」、「1001」。  - 0：旧ナビゲーションバー - 1：新ナビゲーションバー - 1001：戻るボタンと見出しのみのナビゲーションバー                                                                        |
     | keepAlive     | いいえ                                    | **true** または **false** を設定可能。デフォルトは **true**。  mainTask を true に設定した場合、このキーは処理されません。                                                                                                                                |
     | ddFocus       | いいえ                                    | **true** または **false** を設定可能。デフォルトは **true**。  **true** を設定すると、コンテナは初期化時に内部要素のフォーカス取得動作を一旦禁止します。                                                                                                                    |
     | ddEnableWX    | いいえ                                    | weex レンダリングをサポートするかどうか。  weex レンダリングをサポートしている場合、ページに weex レンダリングモードが設定されていれば、weex でページをロードして起動できます。                                                                                                                 |
     | ddForceAsync  | いいえ                                    | 強制非同期起動を行うかどうか。  強制非同期起動の場合、ローカルにオフラインパッケージがあっても同期更新はトリガーされず、強制的に非同期更新で起動します（オフライン環境での起動問題を解決）。                                                                                                                     |
     | animated      | いいえ                                    | 値は **0** と **1**。非同期起動時にトランジションアニメーションを行うかどうか（同期起動シナリオではこのパラメーターは無視されます）。デフォルトは **1**。  v4.6.36 バージョンより提供。                                                                                                          |

### ddMode=float（フローティングウィンドウ）の場合に使用可能なパラメーター

| パラメーター        | 必須                           | 説明                                                                                                                                                                                                           |
| ------------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| panelHeight   | いいえ                          | フローティングウィンドウの高さ。画面に対するパーセントまたは固定の高さを指定できます。  - percent50 は画面の 50% を占めることを意味します。数値は (0-100] の範囲で、上下限を超える場合は境界値として処理されます。 - 1000 は 1000pt（px ではない）の固定高さを意味します。 - 設定しない、または 0 を設定した場合、全画面フローティングウィンドウとして表示されます。 |
| containerType | いいえ                          | このシナリオでは以下の 2 つの値が追加されます：  - miniApp（デフォルト）：ミニプログラム - online：オンライン H5                                                                                                                                        |
| miniAppId     | containerType に合わせて決定        | ミニプログラムの appId。                                                                                                                                                                                              |
| page          | containerType に合わせて決定        | URL encode 後のページアドレス。  ミニプログラムの場合は、ミニプログラムの page。  オンライン H5 の場合は、URL アドレス。                                                                                                                                   |
| coverVisible  | いいえ。デフォルトで表示、false を設定すると非表示 | - true（デフォルト）：マスクレイヤーを表示 - false：マスクレイヤーを表示しない（デフォルトは表示）                                                                                                                                                     |

### ddMode=pop（ポップアップ）の場合に使用可能なパラメーター

| パラメーター        | 必須                    | 説明                                                                         |
| ------------- | --------------------- | -------------------------------------------------------------------------- |
| width         | はい                    | ポップアップの幅。                                                                  |
| height        | はい                    | ポップアップの高さ。                                                                 |
| clear         | いいえ                   | 背景を透過にするかどうか。デフォルトは非透過。                                                    |
| containerType | いいえ                   | このシナリオでは以下の 2 つの値が追加されます：  - miniApp（デフォルト）：ミニプログラム - online：オンライン H5      |
| miniAppId     | containerType に合わせて決定 | ミニプログラムの appId。                                                            |
| page          | containerType に合わせて決定 | URL encode 後のページアドレス。  ミニプログラムの場合は、ミニプログラムの page。  オンライン H5 の場合は、URL アドレス。 |

2. **マイクロアプリを開く scheme（企業ミニプログラム専用 scheme）**

   scheme：`dingtalk://dingtalkclient/action/open_micro_app`

   `基本パラメーターは共通パラメーターリストと同じです。`

   グレーリリース制御ロジックは、この scheme の handler 内に配置する必要があります。

   ​

   | パラメーター       | 必須                                                                | 説明                                                                                            |
   | ------------ | ----------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
   | corpId       | はい                                                                | 企業の corpid。  **重要**  優先度が高く、query 内の corpId を上書きします。                                          |
   | appId        | agent\_id とどちらかを選択。両方ある場合は appid が優先                              | マイクロアプリ ID（ミニプログラム ID ではないことに注意）。ISV アプリではこの ID を使用します。                                       |
   | agentId      | app\_id とどちらかを選択                                                  | 企業自社開発アプリの agent\_id。                                                                         |
   | fallbackUrl  | いいえ。  H5 をサポートしないマイクロアプリの場合はこのパラメーターは不要。H5 とミニプログラムのグレーリリース段階では必須 | H5 のアドレス。ミニプログラムをサポートしないマイクロアプリは、直接このアドレスを使用します。                                              |
   | ddFocus      | いいえ                                                               | true を設定すると、コンテナは初期化時に内部要素のフォーカス取得動作を一旦禁止します。デフォルトは false。                                    |
   | ddForceAsync | いいえ                                                               | 強制非同期起動を行うかどうか。強制非同期起動の場合、ローカルにオフラインパッケージがあっても同期更新はトリガーされず、強制的に非同期更新で起動します（オフライン環境での起動問題を解決）。 |

   PC 端末テストケース：

   * slide panel で URL を開く（title なし）

     ```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
     dingtalk://dingtalkclient/action/open_micro_app?corpId=11233&app_id=123&fallback_url=https%3A%2F%2Fwww.dingtalk.io&container_type=slide_panel
     ```
   * slide panel で URL を開く（title なし）

     ```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
     dingtalk://dingtalkclient/action/open_micro_app?corpId=11233&app_id=123&fallback_url=https%3A%2F%2Fwww.dingtalk.io
     ```
   * browser で URL を開く

     ```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
     dingtalk://dingtalkclient/action/open_micro_app?corpId=11233&app_id=123&fallback_url=https%3A%2F%2Fwww.dingtalk.io&container_type=browser
     ```
   * slide panel で URL を開く（title あり）

     ```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
     https://www.dingtalk.io?micro_app_scheme=dingtalk%3A%2F%2Fdingtalkclient%2Faction%2Fopen_micro_app%3F%0AcorpId%3D11233%26app_id%3D123%26container_type%3Dslide_panel%26title%3Dtest_title
     ```
   * browser で URL を開く

     ```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
     https://www.dingtalk.io?micro_app_scheme=dingtalk%3A%2F%2Fdingtalkclient%2Faction%2Fopen_micro_app%3F%0AcorpId%3D11233%26app_id%3D123%26container_type%3Dbrowser%26title%3Dtest_title
     ```
3. ミニプログラムを開く schema（個人ミニプログラム専用 scheme）

   scheme：`dingtalk://dingtalkclient/action/open_mini_app`

   基本パラメーターは共通パラメーターリストと同じです。

   | パラメーター    | 必須 | 説明          |
   | --------- | -- | ----------- |
   | miniAppId | はい | ミニプログラム ID。 |
4. **ミニプログラムデバッグ scheme**

   scheme：`dingtalk://dingtalkclient/action/dev_mini_app`

   主にミニプログラムのデバッグ、および appx フレームワーク開発に使用します。この方式で開いたミニプログラムは、直接 URL からメインドキュメントを起動します。パッケージ管理フローには入らず、保活ロジックもトリガーされません。miniAppId はインターフェース検証などの用途のみに使用されます。

### 重要

パラメーターはすべて encode 済みです。デコードに注意してください。

| パラメーター         | 説明                                                                                             |
| -------------- | ---------------------------------------------------------------------------------------------- |
| url            | encode 後のミニプログラムメインドキュメント URL。クライアントは nebulaSDK を呼び出してこのリンクを開きます。                              |
| miniAppId      | ミニプログラムの appId                                                                                 |
| isTinyApp      | ミニプログラムかどうか。http 方式で開く場合は必ず YES を指定。                                                           |
| enableDSL      | ミニプログラムを使用するかどうか。値は YES または NO。                                                                |
| enableWK       | WK を使用するかどうか。値は YES または NO。                                                                    |
| packageManager | パッケージ管理サービス  - デフォルトは DingTalk インターフェース - alipay\_online：Alipay 本番環境 - alipay\_dev：Alipay 開発環境 |
| keepAlive      | 保活するかどうか。デフォルトは true。                                                                          |

## リンクから追加元グループ情報を取得する方法

* 特殊な開き方の指定

  ショートカット入口（グループプラグイン）は業務機能を備えた dingtalk リンクです。開発者は、自身のマイクロアプリの実際のシナリオと、グループ内でユーザーが利用する際の具体的なニーズに基づいて、グループプラグインリンクを組み立てる必要があります。プラグインの名称は最大 4 文字まで対応しています。プラグインリンクには非常に多くの機能がありますが、開発者がリンクパラメーターを通じて組み立てる必要があります。たとえば、モバイル端末でのページの開き方（ページのプッシュ、ポップアップなど）から、PC 端末でのページ遷移ロジック（新しいコンテナで開く、ページを左へスライドさせるなど）まで、すべてリンクパラメーターの設定によって実現します。

  以下では、プロジェクトグループのショートカット入口を例に、ショートカット入口リンクをどのように組み立てるか詳しく説明します。

  `<dingtalk://dingtalkclient/page/link?url=https%3a%2f%2fding-doc.dingtalk.io%2fdoc%23%2fpqkq0u%2feluagw%2f$CORPID$%2f$DOUBLE_ENCCID$>`

  * **開発者のターゲットページアドレス**：https%3a%2f%2fding-doc.dingtalk.io%2fdoc%23%2fpqkq0u%2feluagw

    * DingTalk 統一リダイレクトプロトコルを使用する場合、この部分は「DingTalk 統一リダイレクトプロトコル」アドレスの入力パラメーターとなるため、urlEncode が必要です。
    * DingTalk 統一リダイレクトプロトコルを使用しない場合、元の URL をそのままショートカット入口のアドレスとして使用できます。urlEncode は不要です。
  * **DingTalk 統一リダイレクトプロトコル（任意）** dingtalk://dingtalkclient/page/link?url=

    * この部分は、指定したページをどのような方法で開くかを決定します。現在、「ブラウザで開く」「サイドバーで開く」などに対応しており、それぞれの方式に対応する統一リダイレクトプロトコルの path が異なります。
    * 一部の統一リダイレクトプロトコル path は、特定のプラットフォームクライアントでのみ使用可能です。たとえば、サイドバーで開くのは PC および Mac 端末でのみ利用可能です。
  * ショートカット入口の **アドレス動的パラメーター（任意）** $CORPID$ $DOUBLE_ENCCID$

    * この動的パラメーターを設定すると、ユーザーがショートカット入口をクリックして開発者のアドレスにアクセスした際に、URL 内のこの部分の動的パラメーターを、corpid や openConversationId などのグループのコンテキスト情報に置換できます。

      現在対応している動的パラメーターは以下のとおりです：

      | パラメーター          | 説明                                                                                                                                                    |
      | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
      | $CORPID$        | 組織ID（corpId）に動的に置換                                                                                                                                    |
      | $ENCCID$        | オープングループ ID（openConversationId）に動的に置換。  DingTalk 統一リダイレクトプロトコルを使用しない場合のみ、この動的パラメーターを使用します。                                                            |
      | $DOUBLE_ENCCID$ | オープングループ ID（openConversationId）に動的に置換。違いは 2 回 urlencode されることで、複数回のプロトコル透過リダイレクト urldecode に使用します。  DingTalk 統一リダイレクトプロトコルを使用する場合のみ、この動的パラメーターを使用します。 |

      $DOUBLE_ENCCID$ で URL の暗号化・復号化を 2 回行う理由は次のとおりです。DingTalk では「dingtalk://」という内部プロトコルが 1 層あり、このプロトコルを解析する際に 1 回暗号化が必要です。また、URL パラメーターの後ろの業務 https プロトコルを下流のコンテナに透過して使用する際にも、1 回の暗号化・復号化が必要です。消費側で 2 回の解析が必要なため、URL を生成する際にも 2 回の暗号化が必要となります。

      URL 生成例：urlencode（DingTalk url？xxx=xxx & url = urlencode（業務 url））

      URL 解析例：a、urldecode（DingTalk url）-> 業務 url を取得；b、urldecode（業務 url）-> 使用可能なパラメーター
