# モジュールチャネルを連携(アタッチ)する **オプション機能を利用するには手続きが必要です** 本ドキュメントに記載の機能は、所定の申請等を行った法人ユーザーのみがご利用いただけます。モジュールを利用した拡張機能の公開を希望するお客様は、担当営業までご連絡いただくか、[LINEマーケットプレイス お問い合わせ](https://line-marketplace.com/jp/inquiry)よりお問い合わせください。 モジュールチャネルの機能を利用するには、以下の手順に従って、LINE公式アカウントの管理者からの認可と、モジュールチャネルの連携(アタッチ)が必要です。 ## OAuth 2.0の認可の仕組みを利用してモジュールチャネルをアタッチする OAuth 2.0の認可の仕組みのフローに従って、LINE公式アカウントの管理者から認可を得ることで、モジュールチャネルをアタッチできます。 ## モジュールをアタッチするためのフロー 1つ目の画面と5つ目の画面は、モジュールチャネルの開発担当企業が準備してください。 ![OAuth 2.0の認可の仕組みを使ったモジュールチャネルのアタッチするフロー](https://developers.line.biz/media/partner-docs/module-technical/flow-ja.png) **LINE公式アカウントに複数のモジュールチャネルをアタッチする際の制限** 「Default Active」の機能が付与されたモジュールチャネルは、1つのLINE公式アカウントに複数アタッチすることはできません。 1. [LINE公式アカウントの管理者に認可を要求する](https://developers.line.biz/ja/docs/partner-docs/module-technical-attach-channel/#request-auth-from-line-oa-admin) 1. [連携画面について](https://developers.line.biz/ja/docs/partner-docs/module-technical-attach-channel/#about-linkage-screen) 1. [認可コードまたはエラーコードを受け取る](https://developers.line.biz/ja/docs/partner-docs/module-technical-attach-channel/#get-auth-code) 1. [モジュールチャネルの提供者の操作で連携(アタッチ)する](https://developers.line.biz/ja/docs/partner-docs/module-technical-attach-channel/#link-attach-by-operation-of-module-channel-provider) ### 1. LINE公式アカウントの管理者に認可を要求する LINE公式アカウントの管理者に、認証と認可のためのURL(認可URL`https://manager.line.biz/module/auth/v1/authorize`にクエリパラメータを付けたもの)にアクセスしてもらうことで、LINE公式アカウントへモジュールチャネルをアタッチするプロセスが開始されます。 **認証と認可のためのURLの例** ``` https://manager.line.biz/module/auth/v1/authorize?response_type=code&client_id=1234567890&redirect_uri=https%3A%2F%2Fexample.com%2Fcallback&scope=message%3Asend%20message%3Areceive&state={CSRF token}®ion=JP&basic_search_id={LINE Official Account basic ID}&brand_type=premium ``` 一般的には、モジュールチャネルの連携を開始するためのページに、このURLにアクセスするリンクを設置し、LINE公式アカウントの管理者にリンクをクリックしてもらいます。上記の例で提示されているフローでは、「【貴社サービス内】連携開始ページ」で、[**Attach Module**]ボタンをクリックしたときに、このURLにアクセスするように設定しています。 #### クエリパラメータ response_type String `code` redirect_uri String リダイレクトURL。モジュールチャネルの開発担当企業が、認可コードを受け取るためのURLです。認証と認可(連携画面での操作)の後に、LINE公式アカウントの管理者がこのURLにリダイレクトされます。 このURLは、モジュールチャネルの開発担当企業が用意してください。なお、このURLはあらかじめ[LINE Developersコンソール](https://developers.line.biz/console/)でモジュールチャネルに登録したリダイレクトURLと一致させてください。 **redirect_uriにはURLエンコードした値を指定してください** クエリパラメータのURLエンコードを忘れると、2つ目以降のクエリパラメータが認証URLに対するクエリパラメータとして認識され、リダイレクト先に渡されません。 例えば、`redirect_uri`に`https://example.com/auth?param1=value1¶m2=value2`を指定する場合、認証と認可のためのURLは`https://manager.line.biz/module/auth/v1/authorize?response_type=code&client_id=1234567890&redirect_uri=https%3A%2F%2Fexample.com%2Fauth%3Fparam1%3Dvalue1%26param2%3Dvalue2&scope=message%3Asend%20message%3Areceive&state={CSRF token}®ion=JP&basic_search_id={LINE Official Account basic id}&brand_type=premium`とします。 client_id String モジュールチャネルのチャネルID。LINEプラットフォームが発行した、チャネル固有の識別子です。 scope String LINE公式アカウントの管理者に許可を求める権限(スコープ)を指定します。複数のスコープを指定する場合は、URLエンコードされた空白文字(%20)で区切って指定してください。詳しくは、「[スコープ](https://developers.line.biz/ja/docs/partner-docs/module-technical-attach-channel/#scopes)」を参照してください。 state String [クロスサイトリクエストフォージェリ(CSRF)](https://datatracker.ietf.org/doc/html/rfc6749#section-10.12)防止用の固有な英数字の文字列。モジュールチャネルの開発担当企業のシステムでランダムにユニークな値を生成する必要があります。URLエンコードされた文字列は使用できません。 region String モジュールチャネルをアタッチするLINE公式アカウントの地域。`JP`や`TW`を指定します。 basic_search_id String LINE公式アカウントの[ベーシックID](https://help.linebiz.com/lineadshelp/s/article/L000001191?language=ja)。特定のLINE公式アカウントにのみモジュールチャネルへのアタッチを許可する場合に指定します。 brand_type String アタッチ可能な[LINE公式アカウントのアカウント種別](https://www.lycbiz.com/jp/service/line-official-account/account-type/)を制限する場合に指定します。 - プレミアムアカウント: `premium` - 認証済アカウント: `verified` - 未認証アカウント: `unverified` 複数のアカウント種別を指定する場合には、URLエンコードされた空白文字(%20)で連結します。例えば、プレミアムアカウントおよび認証済アカウントのみアタッチ可能なように制限する場合は`brand_type=premium%20verified`とします。 code_challenge String 認可コード横取り攻撃への対策としてOAuth 2.0の拡張仕様で定義されるPKCE(Proof Key for Code Exchange)を利用する場合に指定します。[RFC 7636](https://datatracker.ietf.org/doc/html/rfc7636)に準拠しています。 code_challenge_method String `S256` 認可コード横取り攻撃への対策としてOAuth 2.0の拡張仕様で定義されるPKCE(Proof Key for Code Exchange)を利用する場合に指定します。[RFC 7636](https://datatracker.ietf.org/doc/html/rfc7636)に準拠しています。 #### スコープ `scope`パラメータに指定できるスコープは以下のとおりです。複数のスコープを指定するには、URLエンコードされた空白文字(%20)で区切って指定します。 | スコープ | モジュールチャネルで利用できるAPI | | --- | --- | | 指定不要(デフォルト) | スコープ不要で利用できます。 | | `message%3Asend`
(message:send) | | | `message%3Areceive`
(message:receive) | | | `account%3Amanage`
(account:manage) | | | `message%3Amark_as_read`
(message:mark_as_read) | | | `message%3Atemplated_pnp`
(message:templated_pnp) | | | `profile%3Aread`
(profile:read) | | | `coupon%3Amanage`
(coupon:manage) | | | `crm%3Amanage`
(crm:manage) | このスコープはChat Plugin機能(※)を利用するモジュールチャネルでのみ指定が可能です。それ以外の場合は指定しないでください。
Chat Plugin機能を利用する場合は必須となります。Chat Plugin機能を利用するモジュールチャネルにおいて、このスコープを指定していなかった場合、今後Chat Pluginで提供される機能を利用することができない場合があります。 | (※)Chat Plugin機能は、現在一部の法人ユーザーにのみ公開しています。 ### 2. 連携画面について LINE公式アカウントの管理者が、認証と認可のためのURLにアクセスすると、LINE Official Account Managerの連携画面が表示されます。連携画面には、モジュールチャネル作成時に申請した内容が表示されます。設定内容は、[LINE Developersコンソール](https://developers.line.biz/console/)で確認できます。 ![連携画面](https://developers.line.biz/media/partner-docs/attach-disp-ja.png) ### 3. 認可コードまたはエラーコードを受け取る LINE公式アカウントの管理者が認証と認可を終了すると、認証と認可のためのURLで指定したリダイレクトURL(`redirect_uri`)に、以下のクエリパラメータを通じて認可コードやエラーコードが渡されます。上記の例で提示されている[フロー](https://developers.line.biz/ja/docs/partner-docs/module-technical-attach-channel/#attach-flow)では、「【OAM】確認および連携」で[**連携**]ボタンをクリックしたときに認可コードやエラーコードが渡されます。 #### 認可コードを受け取る LINE公式アカウントの管理者による認証と認可が完了すると、以下のクエリパラメータが付与されたリダイレクトURL(`redirect_uri`)にリダイレクトされます。 ##### クエリパラメータ code String LINE公式アカウントに連携(アタッチ)するときに必要な認可コードです。認可コードには有効期間があります。また、認可コードは1回のみ使用できます。 state String CSRF対策用の文字列です。認証と認可のためのURLの`state`クエリパラメータで指定した文字列と同じものであることを確認してください。 #### エラーコードを受け取る LINE公式アカウントの管理者が認可を拒否した場合、以下のクエリパラメータが付与されたリダイレクトURL(`redirect_uri`)にリダイレクトされます。 ##### クエリパラメータ error String エラーコードです。 error_description String エラーの詳細です。 state String CSRF対策用の文字列です。認証と認可のためのURLの`state`クエリパラメータで指定した文字列と同じものであることを確認してください。 ### 4. モジュールチャネルの提供者の操作で連携(アタッチ)する 認可コードを取得し、`state`クエリパラメータで渡された文字列に問題がないことが確認できたら、モジュールチャネルをLINE公式アカウントにアタッチします。 詳しくは、『法人ユーザー向けオプションAPIリファレンス』の「[モジュールチャネルの提供者の操作で連携(アタッチ)する](https://developers.line.biz/ja/reference/partner-docs/#link-attach-by-operation-module-channel-provider)」を参照してください。