> ## 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.

# ショートカット入口（グループプラグイン）の URL を設定する

> グループプラグインのショートカット URL を設定し、ページ、Web アプリ、ミニプログラムへのリダイレクトに対応します

グループプラグインの URL を設定する場合は、本ドキュメントの内容を参照してください。

## ページへリダイレクト

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
dingtalk://dingtalkclient/page/link?dd_mode=present&pc_slide=true&url=https%3A%2F%2Fwww.dingtalk.io
```

| パラメーター    | 説明                                                                      |
| --------- | ----------------------------------------------------------------------- |
| url       | ページの URL。必ず urlencode してください。                                           |
| dd\_mode  | iOS で使用。   - push：iOS で左から右へコンテナーをプッシュ - present：iOS で下から上へコンテナーをポップアップ |
| pc\_slide | pc\_slide=true の場合、PC 版ではサイドバーで当該ページを開きます。                              |

## Web アプリ（H5 マイクロアプリ）へリダイレクト

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
dingtalk://dingtalkclient/action/openapp?corpid=$CORPID$&container_type=work_platform&app_id=0_1234&redirect_type=jump&redirect_url=https%3A%2F%2Fwww.dingtalk.io
```

| パラメーター               | 説明                                                                                                                                      |
| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| 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` は Web ページを表示するかどうか）                          |

## ミニプログラムへリダイレクト

| パラメーター        | 必須                                | 説明                                                                                                                                                                                                           |
| ------------- | --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| appId         | agentId と二者択一。両方存在する場合は appId を優先 | アプリ ID。ミニプログラムの miniAppId ではないことに注意してください。サードパーティ社内アプリはこの ID を使用します。                                                                                                                                         |
| agentId       | appId と二者択一。両方存在する場合は app\_id を優先 | アプリ ID。                                                                                                                                                                                                      |
| corpid        | 必須                                | 企業の corpId。                                                                                                                                                                                                  |
| 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 バージョンよりリリース。                                                                                                         |

1. **ddMode=float のフローティングウィンドウ時にサポートされるパラメーター**

   | パラメーター        | 必須                          | 説明                                                                                                                                                                                       |
   | ------------- | --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
   | panelHeight   | 任意                          | フローティングウィンドウの高さ。画面に対するパーセントでも、確定値でも指定できます。  - percent50：画面の 50% を占める意味。数値は (0-100] の範囲。境界を超える場合は境界値として処理されます。 - 1000：確定の高さで単位は pt（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 のハンドラー内に配置してください。

   | パラメーター       | 必須                                                       | 説明                                                                                                   |
   | ------------ | -------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
   | 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 は API 検証などにのみ使用されます。

### 重要

パラメーターは全て 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$ の 2 回 url 暗号化・復号を行う理由：DingTalk は "dingtalk://" による内部プロトコル層を持ち、このプロトコル層を解析するために 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）→ 利用可能なパラメーター
