# モジュールチャネルを連携(アタッチ)する
本ドキュメントに記載の機能は、所定の申請等を行った法人ユーザーのみがご利用いただけます。モジュールを利用した拡張機能の公開を希望するお客様は、担当営業までご連絡いただくか、LINEマーケットプレイス お問い合わせ (opens new window)よりお問い合わせください。
モジュールチャネルの機能を利用するには、以下の手順に従って、LINE公式アカウントの管理者からの認可と、モジュールチャネルの連携(アタッチ)が必要です。
# OAuth 2.0の認可の仕組みを利用してモジュールチャネルをアタッチする
OAuth 2.0の認可の仕組みのフローに従って、LINE公式アカウントの管理者から認可を得ることで、モジュールチャネルをアタッチできます。
# モジュールをアタッチするためのフロー
1つ目の画面と5つ目の画面は、モジュールチャネルの開発担当企業が準備してください。
「Default Active」の機能が付与されたモジュールチャネルは、1つのLINE公式アカウントに複数アタッチすることはできません。
# 1. LINE公式アカウントの管理者に認可を要求する
LINE公式アカウントの管理者に、認証と認可のためのURL(認可URLhttps://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コンソールでモジュールチャネルに登録したリダイレクト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)で区切って指定してください。詳しくは、「スコープ」を参照してください。
state
String
クロスサイトリクエストフォージェリ(CSRF) (opens new window)防止用の固有な英数字の文字列。モジュールチャネルの開発担当企業のシステムでランダムにユニークな値を生成する必要があります。URLエンコードされた文字列は使用できません。
region
String
モジュールチャネルをアタッチするLINE公式アカウントの地域。JP
やTW
を指定します。
basic_search_id
String
LINE公式アカウントのベーシックID (opens new window)。特定のLINE公式アカウントにのみモジュールチャネルへのアタッチを許可する場合に指定します。
brand_type
String
アタッチ可能なLINE公式アカウントのアカウント種別 (opens new window)を制限する場合に指定します。
- プレミアムアカウント:
premium
- 認証済アカウント:
verified
- 未認証アカウント:
unverified
複数のアカウント種別を指定する場合には、URLエンコードされた空白文字(%20)で連結します。例えば、プレミアムアカウントおよび認証済アカウントのみアタッチ可能なように制限する場合はbrand_type=premium%20verified
とします。
code_challenge
String
認可コード横取り攻撃への対策としてOAuth 2.0の拡張仕様で定義されるPKCE(Proof Key for Code Exchange)を利用する場合に指定します。RFC 7636 (opens new window)に準拠しています。
code_challenge_method
String
S256
認可コード横取り攻撃への対策としてOAuth 2.0の拡張仕様で定義されるPKCE(Proof Key for Code Exchange)を利用する場合に指定します。RFC 7636 (opens new window)に準拠しています。
# スコープ
scope
パラメータに指定できるスコープは以下のとおりです。複数のスコープを指定するには、URLエンコードされた空白文字(%20)で区切って指定します。
(※)Chat Plugin機能は、現在一部の法人ユーザーにのみ公開しています。
# 2. 連携画面について
LINE公式アカウントの管理者が、認証と認可のためのURLにアクセスすると、LINE Official Account Managerの連携画面が表示されます。連携画面には、モジュールチャネル作成時に申請した内容が表示されます。設定内容は、LINE Developersコンソールで確認できます。
# 3. 認可コードまたはエラーコードを受け取る
LINE公式アカウントの管理者が認証と認可を終了すると、認証と認可のためのURLで指定したリダイレクトURL(redirect_uri
)に、以下のクエリパラメータを通じて認可コードやエラーコードが渡されます。上記の例で提示されているフローでは、「【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リファレンス』の「モジュールチャネルの提供者の操作で連携(アタッチ)する」を参照してください。