# 法人ユーザー向けオプションAPIリファレンス

オプション機能を利用するには手続きが必要です

本ドキュメントに記載の機能は、所定の申請等を行った法人ユーザーのみがご利用いただけます。自社のLINE公式アカウントでご利用になりたいお客様は、担当営業までご連絡いただくか、弊社パートナー (opens new window)にお問い合わせください。

# 共通仕様

# ステータスコード

『Messaging APIリファレンス』の「ステータスコード」を参照してください。

# レスポンスヘッダー

法人ユーザー向けオプションAPIのレスポンスには、以下のHTTPヘッダーが含まれます。

レスポンスヘッダー 説明
x-line-request-id リクエストID。各リクエストごとに発行されるIDです。

# ミッションスタンプAPI

ミッションスタンプは、ミッションの達成を条件としてユーザーに提供するスタンプです。スタンプをインセンティブに、ユーザーに「ID情報の連携」や「会員登録」、「アンケート回答」などを促すことができます。

# ユーザーにミッションスタンプを提供する

ミッションを達成したユーザーに、ミッションスタンプのダウンロード権限を付与します。

リクエストの例

# HTTPリクエスト

POST https://api.line.me/shop/v3/mission

# リクエストヘッダー

Content-Type

必須

application/json

Authorization

必須

Bearer {channel access token}

# リクエストボディ

to

String

必須

ダウンロード権限を付与するユーザーのユーザーID

productType

String

必須

STICKER

productId

String

必須

スタンプセットのパッケージID

sendPresentMessage

Boolean

必須

false

# レスポンス

ステータスコード200と空のレスポンスボディを返します。

# エラーレスポンス

エラー発生時は、エラーに応じたHTTPステータスコードと、以下のJSONデータを含むレスポンスボディが返されます。

message

String

エラー情報を含むメッセージ。詳しくは、以下の「エラーメッセージ」を参照してください。

# エラーメッセージ

主なエラーのHTTPステータスコードと、JSONデータのmessageプロパティに含まれるエラーメッセージは以下のとおりです。

コード メッセージ 説明
400 invalid request toに指定した送信先のユーザーIDが無効です。
400 illegal argument productIdに指定したスタンプセットがミッションスタンプとして設定されていません。
400 not_sales_period productIdに指定したスタンプセットが有効期間外です。
400 not sale for country toに指定した送信先のユーザーの国では、productIdに指定したスタンプセットが利用できません。
400 not sale for device toに指定した送信先のユーザーが利用している端末は、productIdに指定したスタンプセットに対応していません。
400 not sale for version toに指定した送信先のユーザーが利用しているLINEアプリのバージョンは、productIdに指定したスタンプセットに対応していません。
403 not allowed to use the API チャネルに、ミッションスタンプAPIの利用権限が付与されていません。
404 not found productIdに指定したスタンプセットが存在しません。

# 既読API

# ユーザーからのメッセージに既読を付ける

特定のユーザーから送信されたすべてのメッセージに「既読」を表示できます。

リクエストの例

# HTTPリクエスト

POST https://api.line.me/v2/bot/message/markAsRead

# レート制限

2,000リクエスト/秒

# リクエストヘッダー

Content-Type

必須

application/json

Authorization

必須

Bearer {channel access token}

# リクエストボディ

chat.userId

String

必須

対象のユーザーID。

# レスポンス

ステータスコード200と空のJSONオブジェクトを返します。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 無効なユーザーIDが指定されています。

詳しくは、『Messaging APIリファレンス』の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例

# モジュール

モジュールチャネルをLINE公式アカウントにアタッチします。アタッチするためには、LINE公式アカウントの管理者に認可を要求し、認可コードを取得する必要があります。モジュールの認可フローについて詳しくは、『モジュールドキュメント』の「モジュールチャネルを連携(アタッチ)する」を参照してください。

このAPIを利用する際には、Authorizationヘッダーもしくはリクエストボディのどちらかを使って、モジュールチャネルのチャネルIDとチャネルシークレットを指定する必要があります。

リクエストの例

POST https://manager.line.biz/module/auth/v1/token

Content-Type

必須

application/x-www-form-urlencoded

Authorization

任意

Basic {base64({Channel ID}:{Channel Secret})}

{base64({Channel ID}:{Channel Secret})}には、「モジュールチャネルのチャネルID」と「モジュールチャネルのチャネルシークレット」を:で連結し、Base64でエンコードした文字列を指定してください。モジュールチャネルのチャネルIDとチャネルシークレットは、LINE Developersコンソールで確認できます。

リクエストボディ内でclient_idおよびclient_secretを指定する代わりに、このヘッダを使ってモジュールチャネルのチャネルIDとチャネルシークレットを指定できます。

grant_type

String

必須

authorization_code

code

String

必須

LINEプラットフォームから渡された認可コードを指定します。

redirect_uri

String

必須

認証と認可のためのURLで指定したredirect_uriを指定します。

code_verifier

String

任意

認可コード横取り攻撃への対策としてOAuth 2.0の拡張仕様で定義されるPKCE(Proof Key for Code Exchange)を利用した場合に指定します。

RFC 7636 (opens new window)に準拠しています。

client_id

String

任意

Authorizationヘッダーを使用する代わりに、このパラメータを使ってモジュールチャネルのチャネルIDを指定できます。 モジュールチャネルのチャネルIDは、LINE Developersコンソールで確認できます。

client_secret

String

任意

Authorizationヘッダーを使用する代わりに、このパラメータを使ってモジュールチャネルのチャネルシークレットを指定できます。モジュールチャネルのチャネルシークレットは、LINE Developersコンソールで確認できます。

region

String

任意

認証と認可のためのURLregionに値を指定した場合、同じ値を指定してください。

basic_search_id

String

任意

認証と認可のためのURLでbasic_search_idに値を指定した場合、同じ値を指定してください。

scope

String

任意

認証と認可のためのURLでscopeに値を指定した場合、同じ値を指定してください。

brand_type

String

任意

認証と認可のためのURLでbrand_typeに値を指定した場合、同じ値を指定してください。

成功時は、ステータスコード200と以下の情報を含むJSONオブジェクトを返します。

bot_id

String

LINE公式アカウントのボットのユーザーID。

ボットのユーザーIDは、Messaging APIAcquire Control APIを呼び出す際に利用します。

注意

ボットのユーザーIDは、LINE Developersコンソールで、Messaging APIチャネルの[チャネル基本設定]タブに表示される[あなたのユーザーID]ではありません。

scope

String

LINE公式アカウントの管理者によって許可された権限(スコープ)。

レスポンスの例

以下のHTTPステータスコードを返します。

  • 400 Bad Request
  • 403 Forbidden

LINE公式アカウントからモジュールチャネルをデタッチします。

リクエストの例

POST https://api.line.me/v2/bot/channel/detach

2,000リクエスト/秒

Content-Type

必須

application/json

Authorization

必須

Bearer {channel access token}

{channel access token}には、モジュールチャネルのチャネルアクセストークンを指定してください。

botId

String

必須

モジュールチャネルにアタッチされたLINE公式アカウントのボットのユーザーID。

ボットのユーザーIDは、「モジュールチャネルの提供者の操作で連携(アタッチ)する」のレスポンスやAttachedイベントで取得できます。

成功時は、ステータスコード200を返します。

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 モジュールチャネルを連携解除(デタッチ)できませんでした。次のような理由が考えられます。
  • 無効なボットのユーザーIDが指定されている。
  • 存在しないボットが指定されている。
  • モジュールチャネルが連携(アタッチ)されていない。
  • モジュールチャネルではないチャネルのチャネルアクセストークンが指定されている。

詳しくは、『Messaging APIリファレンス』の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例

# Acquire Control API

Standby Channelが主導権(Chat Control)を取得する場合は、Acquire Control APIを呼び出します。

それまでActive Channelだったチャネルは、自動的にStandby Channelに切り替わります。

警告

現在提供しているモジュールの仕組みにおいては、本APIを呼び出す必要はありません。そのため本APIの実装は任意となります。

本APIは現状、想定外の問題等によりチャットの主導権が切り替わった際にのみ利用します。

リクエストの例

# HTTPリクエスト

POST https://api.line.me/v2/bot/chat/{chatId}/control/acquire

# レート制限

2,000リクエスト/秒

# リクエストヘッダー

Content-Type

必須

application/json

Authorization

必須

Bearer {channel access token}

{channel access token}には、モジュールチャネルのチャネルアクセストークンを指定してください。

ボットのユーザーIDを指定するヘッダー

必須

モジュールチャネルにアタッチされたLINE公式アカウントのボットのユーザーID。

ボットのユーザーIDは、「モジュールチャネルの提供者の操作で連携(アタッチ)する」のレスポンスやAttachedイベントで取得できます。

ヘッダーの詳細については参画される際に別途提供いたします

本ヘッダーの名前(パラメーター名)は、実際にLINEマーケットプレイス (opens new window)に参画するお客様に限定して公開しています。

# パスパラメータ

chatId

必須

userIdroomId、またはgroupId

# リクエストボディ

expired

Boolean

任意
  • True:制限時間(ttl)を経過すると、主導権(Chat Control)がPrimary Channelに戻ります。(デフォルト)
  • False:制限時間がなく、主導権(Chat Control)は時間経過では変わりません。

ttl

Number

任意

主導権(Chat Control)がPrimary Channelに戻るまでの時間(モジュールチャネルがActive Channelでいられる時間)。秒で指定します。最大値は1年間(3600 * 24 * 365)。デフォルト値は3600(1時間)です。

expiredの値がfalseの場合は、無視されます。

# レスポンス

成功時は、ステータスコード200を返します。

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 chatIdパラメータに、不正なIDが指定されています。
404 主導権(Chat Control)を取得できませんでした。次のような理由が考えられます。
  • モジュールと連携しているLINE公式アカウントを友だち追加していないユーザーが指定されている。
  • モジュールと連携しているLINE公式アカウントが参加していないグループが指定されている。
  • モジュールと連携しているLINE公式アカウントが参加していない複数人トークが指定されている。
423 別のチャネルが、一定期間内(数秒程度)に主導権(Chat Control)を取得していた場合。

詳しくは、『Messaging APIリファレンス』の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例

# Release Control API

Active Channelが持っている主導権(Chat Control)を、Primary Channelに返却する場合は、Release Control APIを呼び出します。

警告

現在提供しているモジュールの仕組みにおいては、本APIを呼び出す必要はありません。そのため本APIの実装は任意となります。

本APIは現状、想定外の問題等によりチャットの主導権が切り替わった際にのみ利用します。

リクエストの例

# HTTPリクエスト

POST https://api.line.me/v2/bot/chat/{chatId}/control/release

# レート制限

2,000リクエスト/秒

# リクエストヘッダー

Content-Type

必須

application/json

Authorization

必須

Bearer {channel access token}

{channel access token}には、モジュールチャネルのチャネルアクセストークンを指定してください。

ボットのユーザーIDを指定するヘッダー

必須

モジュールチャネルにアタッチされたLINE公式アカウントのボットのユーザーID。

ボットのユーザーIDは、「モジュールチャネルの提供者の操作で連携(アタッチ)する」のレスポンスやAttachedイベントで取得できます。

ヘッダーの詳細については参画される際に別途提供いたします

本ヘッダーの名前(パラメーター名)は、実際にLINEマーケットプレイス (opens new window)に参画するお客様に限定して公開しています。

# パスパラメータ

chatId

必須

userIdroomId、またはgroupId

# レスポンス

成功時は、ステータスコード200を返します。

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 chatIdパラメータに、不正なIDが指定されています。

詳しくは、『Messaging APIリファレンス』の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例

# モジュールチャネル専用のWebhookイベントオブジェクト

# Attachedイベント

モジュールチャネルが、LINE公式アカウントにアタッチされたことを示すイベントです。モジュールチャネルのWebhook URLサーバーに送信されます。

timestampなど

共通プロパティ」を参照してください。

ただし、modeactive固定です。

type

String

module

module.type

String

attached

module.botId

String

アタッチされたLINE公式アカウントのボットのユーザーID

module.scopes

Array of strings

LINE公式アカウントの管理者によって許可されたスコープを示す文字列の配列です。

Attachedイベントの例

# Detachedイベント

モジュールチャネルが、LINE公式アカウントからデタッチされたことを示すイベントです。モジュールチャネルのWebhook URLサーバーに送信されます。

LINE公式アカウントを削除する操作をしたときにはDetachされません

LINE Official Account ManagerでLINE公式アカウントを削除する操作をしたときは、モジュールチャネルはデタッチされません。

削除する操作をしてから3か月が経過し、LINE公式アカウントの分析データを含むすべての情報が完全に削除されると、自動的にデタッチされます。

timestampなど

共通プロパティ」を参照してください。

ただし、modeactive固定です。

type

String

module

module.type

String

detached

module.botId

String

連携解除されたLINE公式アカウントのボットのユーザーID

module.reason

String

連携解除された理由

bot_deleted:LINE公式アカウントの分析データを含むすべての情報が完全に削除されました。

Detachedイベントの例

# Activatedイベント

Acquire Control APIを呼び出して、モジュールチャネルがActive Channelに切り替わったことを示すイベントです。モジュールチャネルのWebhook URLサーバーに送信されます。

注意

Acquire Control APIで指定した有効期間が過ぎて、主導権(Chat Control)が切り替わった場合は、Activatedイベントは送信されません。

timestamp、sourceなど

共通プロパティ」を参照してください。

ただし、modeactive固定です。

type

String

activated

chatControl.expireAt

Number

“active”が維持される期限。

Activatedイベントの例

# Deactivatedイベント

Acquire Control APIまたはRelease Control APIを呼び出して、モジュールチャネルがStandby Channelに切り替わったことを示すイベントです。モジュールチャネルのWebhook URLサーバーに送信されます。

注意

Acquire Control APIで指定した有効期間が過ぎて、主導権(Chat Control)が切り替わった場合は、Deactivatedイベントは送信されません。

timestamp、sourceなど

共通プロパティ」を参照してください。

ただし、modeactive固定です。

type

String

deactivated

Deactivatedイベントの例

# botSuspendイベント

LINE公式アカウントが一時停止状態(Suspend)になったことを示すイベントです。モジュールチャネルのWebhook URLサーバーに送信されます。

このイベントを受信したときは、以下のような処理を行うことを推奨します。

  • モジュールチャネルの管理画面に「LINE公式アカウントが利用できない状態になっているため、この管理画面は利用できません」といったメッセージを表示し、管理画面の利用を停止する。
  • いったん一時停止状態になっても、一時停止状態から復帰する可能性(botResumeイベントを受信する可能性)があります。すべての情報を保持しておくことを推奨します。
注意

Primary ChannelにはbotSuspendイベントは送信されません。

botSuspendイベントを受信したあとでDetachedイベントを受信した場合は、LINE公式アカウントがモジュールチャネルの利用を停止し、契約を解除したことを示します。

timestampなど

共通プロパティ」を参照してください。

ただし、modeactive固定です。

type

String

botSuspended

botSuspendイベントの例

# botResumedイベント

LINE公式アカウントが一時停止状態から復帰したことを示すイベントです。モジュールチャネルのWebhook URLサーバーに送信されます。

このイベントを受信したときは、モジュールチャネルの管理画面で「LINE公式アカウントが利用できない状態になっているため、この管理画面は利用できません」といったメッセージを非表示にし、管理画面の利用を再開することを推奨します。

注意

Primary ChannelにはbotResumedイベントは送信されません。

timestampなど

共通プロパティ」を参照してください。

ただし、modeactive固定です。

type

String

botResumed

botResumedイベントの例

# モジュールをアタッチしたボットのリストを取得する

モジュールチャネルをアタッチした、複数のLINE公式アカウントのボットの基本情報をリストで取得します。

リクエストの例

# HTTPリクエスト

GET https://api.line.me/v2/bot/list?limit={limit}&start={continuationToken}

# レート制限

2,000リクエスト/秒

# リクエストヘッダー

Authorization

必須

Bearer {channel access token}

{channel access token}には、モジュールチャネルのチャネルアクセストークンを指定してください。

# クエリパラメータ

limit

任意

基本情報を取得するボットの最大個数を指定します。デフォルト値は100です。
最大値:100

start

任意

継続トークンの値。レスポンスで返されるJSONオブジェクトのnextプロパティに含まれます。1回のリクエストでボットの基本情報をすべて取得できない場合は、このパラメータを指定して残りの配列を取得します。

# レスポンス

成功時は、ステータスコード200と以下の情報を含むJSONオブジェクトを返します。

bots

Array

ボットの基本情報を表すBot list Item objectの配列。

bots[].userId

String

ボットのユーザーID

bots[].basicId

String

ボットのベーシックID

bots[].premiumId

String

含まれないことがあります

ボットのプレミアムID。プレミアムIDが未設定の場合、この値は含まれません。

bots[].displayName

String

ボットの表示名

bots[].pictureUrl

String

含まれないことがあります

プロフィール画像のURL。「https://」から始まる画像URLです。ボットにプロフィール画像を設定していない場合は、レスポンスに含まれません。

next

String

含まれないことがあります

継続トークン。ボットの基本情報の、次の配列を取得するために使用します。このプロパティは、取得しきれなかったボットの基本情報が存在する場合にのみ返されます。

継続トークンの有効期間は24時間(86,400秒間)です。

レスポンスの例

# エラーレスポンス

以下のHTTPステータスコードと、エラーレスポンスを返します。

コード 説明
400 無効な継続トークンが指定されています。

詳しくは、『Messaging APIリファレンス』の「ステータスコード」および「エラーレスポンス」を参照してください。

エラーレスポンスの例

# クイック入力

クイック入力とは、LINEミニアプリ上で[自動入力]をタップすることで、必要なプロフィール情報が自動で入力される機能です。ユーザーがアカウントセンターで設定した共通プロフィールの情報が、LINEミニアプリで簡単に利用できます。詳しくは、「クイック入力の概要」を参照してください。

# liff.$commonProfile.get()

ユーザーがアカウントセンターで設定している共通プロフィールの情報を取得します。

liff.$commonProfile.get()メソッドを実行すると、ユーザーがプロフィールの情報を確認するためのモーダルが表示されます。表示されたモーダルでプロフィールを確認後、ユーザーが[自動で入力する]をタップすると、共通プロフィールの情報を取得できます。

モーダルの表示例:

# 構文

liff.$commonProfile.get(scopes);

# 引数

scopes

Array of strings

必須

取得したい共通プロフィールのスコープを指定します。

scopesに指定できる値については、「取得できる共通プロフィールのスコープと戻り値」を参照してください。

# 戻り値

Partial<CommonProfile>型のPromiseオブジェクトが返されます。

Promiseがresolveされると、ユーザーの共通プロフィール情報を含むPartial<CommonProfile>型のオブジェクトが渡されます。

次のような場合、プロパティはundefinedもしくはnullになります。

  • undefinedになるケース
    • 引数のscopesで対象の項目を指定していない場合
    • 引数のscopesで対象の項目を指定したが、ユーザーがその項目の権限を許可していない場合
  • nullになるケース
    • ユーザーが共通プロフィールで対象の項目に値を設定していない場合
    • 共通プロフィールで対象の項目を取得する時にエラーが発生した場合

指定したスコープに応じて取得できるプロパティの値については、「取得できる共通プロフィールのスコープと戻り値」を参照してください。

# エラーレスポンス

Promiseがrejectされたときは、LiffErrorが渡されます。

プラグインを正しくインストールせずにAPIを呼んだ場合の例

LIFFブラウザ以外でAPIが呼ばれた場合の例

# liff.$commonProfile.getDummy()

共通プロフィールのダミーデータを取得します。10種類のダミーデータが用意されており、caseIdによって取得するダミーデータを指定できます。

liff.$commonProfile.getDummy()メソッドを実行すると、プロフィールの情報を確認するためのモーダルが表示されます。[自動で入力する]をタップすると、共通プロフィールのダミーデータを取得できます。

モーダルの表示例:

# 構文

liff.$commonProfile.getDummy(scopes, caseId);

# 引数

scopes

Array of strings

必須

取得したい共通プロフィールのスコープを指定します。

scopesに指定できる値については、「取得できる共通プロフィールのスコープと戻り値」を参照してください。

caseId

number

必須

取得したいダミーデータのIDを指定します。IDが1から10までのダミーデータが用意されています。

caseIdごとのダミーデータについては、「取得できる共通プロフィールのダミーデータ」を参照してください。

# 戻り値

Partial<CommonProfile>型のPromiseオブジェクトが返されます。

Promiseがresolveされると、共通プロフィールのダミーデータを含むPartial<CommonProfile>型のオブジェクトが渡されます。

次のような場合、プロパティはundefinedもしくはnullになります。

  • undefinedになるケース
    • 引数のscopesで対象の項目を指定していない場合
  • nullになるケース
    • ダミーデータで対象の項目に値が設定されていない場合

指定したIDに応じて取得できるダミーデータについては、「取得できる共通プロフィールのダミーデータ」を参照してください。

# エラーレスポンス

Promiseがrejectされたときは、LiffErrorが渡されます。

プラグインを正しくインストールせずにAPIを呼んだ場合の例

LIFFブラウザ以外でAPIが呼ばれた場合の例

# liff.$commonProfile.fill()

取得した共通プロフィールの情報をフォームに自動入力します。それぞれのプロフィール情報とフォームの紐づけには、data-liff-autocomplete属性を用います。

スコープと一致しないフォームへの自動入力

liff.$commonProfile.fill()による自動入力は、フォームのdata-liff-autocomplete属性を用いて行います。このとき、フォームのdata-liff-autocomplete属性に指定する値は、取得したプロフィール情報のスコープ(family-nametelbday-yearなど)と一致している必要があります。

たとえば、誕生年(bday-year)、誕生月(bday-month)、誕生日(bday-day)の情報をそれぞれ取得した後、20110623のような形式に加工した上でフォームに自動入力させたい場合は、liff.$commonProfile.fill()の代わりに、document.getElementById().valuedocument.querySelector().valueを用いることができます。

取得した姓、電話番号、性別をそのまま自動入力する例

取得した共通プロフィール情報の形式を一部変更して自動入力する場合

# 構文

liff.$commonProfile.fill(profile);

# 引数

profile

Partial<CommonProfile>

必須

フォームに自動入力させるプロフィール情報を、Partial<CommonProfile>型で指定します。

指定できるスコープについては、「取得できる共通プロフィールのスコープと戻り値」を参照してください。

# 戻り値

なし