LINE設定の流れ


Messaging APIリファレンス

共通仕様

レート制限

APIごとに実行できるリクエスト回数およびMessaging APIによって送信されるメッセージの受信者数の制限は以下のとおりです。レート制限はご利用のプランによって異なります。お住いの地域で利用できるLINE@プランについて詳しくは、LINE@ウェブサイトを参照してください。

プランAPIリクエスト回数の制限メッセージ受信者数の制限

Developer Trial

APIごとに1,000/分

ボットごとに20,000/分

その他のプラン

APIごとに10,000/分

ボットごとに200,000/分

ステータスコード

Messaging APIからは以下のステータスコードが返されます。

ステータスコード説明

200 OK

リクエストが成功しました。

400 Bad Request

リクエストに問題があります。

401 Unauthorized

有効なチャネルアクセストークンが指定されていません。

403 Forbidden

リソースにアクセスする権限がありません。ご契約中のプランやアカウントに付与されている権限を確認してください。

429 Too Many Requests

APIコールのレート制限を超過しました。

500 Internal Server Error

内部サーバーのエラーです。

レスポンスヘッダー

Messaging APIのレスポンスには以下のHTTPヘッダーが含まれます。

レスポンスヘッダー説明

X-Line-Request-Id

各リクエストに発行されるID

エラーレスポンス

エラー発生時は、以下のJSONデータを含むレスポンスボディが返されます。

プロパティタイプ説明

message

String

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

details[].message

String

エラーの詳細。特定の状況では返されません。

details[].property

String

エラーの発生箇所。特定の状況では返されません。

エラーメッセージ

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

メッセージ説明

The request body has X error(s)

リクエストボディのJSONデータにエラーがありました。Xの部分にエラーの数が表示されます。詳細はdetails[].messageおよびdetails[].propertyプロパティに含まれます。

Invalid reply token

応答メッセージで使用された応答トークンが無効です。

The property, XXX, in the request body is invalid (line: XXX, column: XXX)

リクエストボディに無効なプロパティが指定されていました。XXXの部分に具体的な行と列が表示されます。

The request body could not be parsed as JSON (line: XXX, column: XXX)

リクエストボディのJSONデータを解析できませんでした。XXXの部分に具体的な行と列が表示されます。

The content type, XXX, is not supported

APIでサポートされていないコンテンツタイプがリクエストされました。

Authentication failed due to the following reason: XXX

APIが呼び出されたときに認証に失敗しました。XXXの部分に理由が表示されます。

Access to this API is not available for your account

実行権限がないAPIを呼び出しました。

Failed to send messages

メッセージの送信に失敗しました。指定したユーザーIDが存在しない場合などにこのエラーが発生します。

エラーレスポンスの例

{

"message":"The request body has 2 error(s)",

"details":[

{

"message":"May not be empty",

"property":"messages[0].text"

},

{

"message":"Must be one of the following values: [text, image, video, audio, location, sticker, template, imagemap]",

"property":"messages[1].type"

}

]

}

Webhook

友だち追加やメッセージの送信のようなイベントがトリガーされると、webhook URLにHTTPS POSTリクエストが送信されます。Webhook URLはチャネルに対してコンソールで設定します。

リクエストはボットアプリのサーバーで受信および処理されます。

リクエストヘッダー

リクエストヘッダー説明

X-Line-Signature

署名の検証に使う署名

リクエストボディ

リクエストボディは、webhookイベントオブジェクトの配列を含むJSONオブジェクトです。

プロパティタイプ説明

events

webhookイベントオブジェクトの配列

イベントの情報

レスポンス

ボットアプリのサーバーにwebhookから送信されるHTTP POSTリクエストには、ステータスコード200を返す必要があります。

Webhookから送信されるHTTP POSTリクエストは、失敗しても再送されません。

署名を検証する

X-Line-Signatureリクエストヘッダーに含まれる署名を検証して、リクエストがLINEプラットフォームから送信されたことを確認する必要があります。

検証の手順は以下のとおりです。

  1. チャネルシークレットを秘密鍵として、HMAC-SHA256アルゴリズムを使用してリクエストボディのダイジェスト値を取得します。

  2. ダイジェスト値をBase64エンコードした値とリクエストヘッダーにある署名が一致することを確認します。

署名検証の例

# Click on the language tabs for examples of signature validation

Webhookイベントオブジェクト

LINEプラットフォームで生成されるイベントを含むJSONオブジェクトです。

Webhookイベントオブジェクトの例

{

"events": [

{

"replyToken": "0f3779fba3b349968c5d07db31eab56f",

"type": "message",

"timestamp": 1462629479859,

"source": {

"type": "user",

"userId": "U4af4980629..."

},

"message": {

"id": "325708",

"type": "text",

"text": "Hello, world"

}

},

{

"replyToken": "8cf9239d56244f4197887e939187e19e",

"type": "follow",

"timestamp": 1462629479859,

"source": {

"type": "user",

"userId": "U4af4980629..."

}

}

]

}

共通プロパティ

以下のプロパティはすべてのwebhookイベントオブジェクトに含まれます。

プロパティタイプ説明

type

String

イベントのタイプを表す識別子

timestamp

Number

イベントの発生時刻(ミリ秒)

source

Object

イベントの送信元情報を含むユーザーグループ、またはトークルームオブジェクト

送信元ユーザー

プロパティタイプ説明

type

String

user

userId

String

送信元ユーザーのID

送信元ユーザーの例

"source": {

"type": "user",

"userId": "U4af4980629..."

}

送信元グループ

プロパティタイプ説明

type

String

group

groupId

String

送信元グループのID

userId

String

送信元ユーザーのID。メッセージイベントにのみ含まれます。ユーザーが公式アカウントの利用条件に同意していない場合は含まれません。

送信元グループの例

"source": {

"type": "group",

"groupId": "Ca56f94637c...",

"userId": "U4af4980629..."

}

送信元トークルーム

プロパティタイプ説明

type

String

room

roomId

String

送信元トークルームのID

userId

String

送信元ユーザーのID。メッセージイベントにのみ含まれます。ユーザーが公式アカウントの利用条件に同意していない場合は含まれません。

送信元トークルームの例

"source": {

"type": "room",

"roomId": "Ra8dbf4673c...",

"userId": "U4af4980629..."

}

メッセージイベント

送信されたメッセージを含むwebhookイベントオブジェクトです。 メッセージのタイプに対応するメッセージオブジェクトが、messageプロパティに含まれます。メッセージイベントには応答できます。

プロパティタイプ説明

type

String

message

replyToken

String

イベントへの応答に使用するトークン

message

Object

メッセージの内容を含むオブジェクト。メッセージには以下のタイプがあります。

テキスト

送信元から送られたテキストを含むメッセージオブジェクトです。

プロパティタイプ説明

id

String

メッセージID

type

String

text

text

String

メッセージのテキスト

テキストメッセージの例

{

"replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",

"type": "message",

"timestamp": 1462629479859,

"source": {

"type": "user",

"userId": "U4af4980629..."

},

"message": {

"id": "325708",

"type": "text",

"text": "Hello, world!"

}

}

画像

送信元から送られた画像を含むメッセージオブジェクトです。バイナリの画像データはcontentエンドポイントから取得できます。

プロパティタイプ説明

id

String

メッセージID

type

String

image

画像メッセージの例

{

"replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",

"type": "message",

"timestamp": 1462629479859,

"source": {

"type": "user",

"userId": "U4af4980629..."

},

"message": {

"id": "325708",

"type": "image"

}

}

動画

送信元から送られた動画を含むメッセージオブジェクトです。バイナリの動画データはcontentエンドポイントから取得できます。

プロパティタイプ説明

id

String

メッセージID

type

String

video

動画メッセージの例

{

"replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",

"type": "message",

"timestamp": 1462629479859,

"source": {

"type": "user",

"userId": "U4af4980629..."

},

"message": {

"id": "325708",

"type": "video"

}

}

音声

送信元から送られた音声を含むメッセージオブジェクトです。バイナリの音声データはcontentエンドポイントから取得できます。

プロパティタイプ説明

id

String

メッセージID

type

String

audio

音声メッセージの例

{

"replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",

"type": "message",

"timestamp": 1462629479859,

"source": {

"type": "user",

"userId": "U4af4980629..."

},

"message": {

"id": "325708",

"type": "audio"

}

}

ファイル

送信元から送られたファイルを含むメッセージオブジェクトです。バイナリデータはcontentエンドポイントから取得できます。

プロパティタイプ説明

id

String

メッセージID

type

String

file

fileName

String

ファイル名

fileSize

Number

ファイルサイズ(バイト)

ファイルメッセージの例

{

"replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",

"type": "message",

"timestamp": 1462629479859,

"source": {

"type": "user",

"userId": "U4af4980629..."

},

"message": {

"id": "325708",

"type": "file",

"fileName": "file.txt",

"fileSize": 2138

}

}

位置情報

送信元から送られた位置情報データを含むメッセージオブジェクトです。

プロパティタイプ説明

id

String

メッセージID

type

String

location

title

String

タイトル

address

String

住所

latitude

Decimal

緯度

longitude

Decimal

経度

位置情報メッセージの例

{

"replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",

"type": "message",

"timestamp": 1462629479859,

"source": {

"type": "user",

"userId": "U4af4980629..."

},

"message": {

"id": "325708",

"type": "location",

"title": "my location",

"address": "〒150-0002 東京都渋谷区渋谷2丁目21−1",

"latitude": 35.65910807942215,

"longitude": 139.70372892916203

}

}

スタンプ

送信元から送られたスタンプデータを含むメッセージオブジェクトです。 LINEの基本的なスタンプとスタンプIDについては、スタンプリストを参照してください。

プロパティタイプ説明

id

String

メッセージID

type

String

sticker

packageId

String

パッケージID

stickerId

String

スタンプID

スタンプメッセージの例

{

"replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",

"type": "message",

"timestamp": 1462629479859,

"source": {

"type": "user",

"userId": "U4af4980629..."

},

"message": {

"id": "325708",

"type": "sticker",

"packageId": "1",

"stickerId": "1"

}

}

フォローイベント

アカウントが友だち追加またはブロック解除されたことを示すイベントです。フォローイベントには応答できます。

プロパティタイプ説明

type

String

follow

replyToken

String

このイベントへの応答に使用するトークン

フォローイベントの例

{

"replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",

"type": "follow",

"timestamp": 1462629479859,

"source": {

"type": "user",

"userId": "U4af4980629..."

}

}

フォロー解除イベント

アカウントがブロックされたことを示すイベントです。

プロパティタイプ説明

type

String

unfollow

フォロー解除イベントの例

{

"type": "unfollow",

"timestamp": 1462629479859,

"source": {

"type": "user",

"userId": "U4af4980629..."

}

}

参加イベント

アカウントがグループまたはトークルームに参加したことを示すイベントです。参加イベントには応答できます。

参加イベントが送信されるタイミングはグループとトークルームで異なります。

  • グループの場合:ユーザーがボットを招待したときに送信されます。

  • トークルームの場合:ボットがトークルームに追加された後で、最初に何らかのイベントが発生したときに送信されます。例えば、ユーザーがメッセージを送ったり、ユーザーがトークルームに追加されたりしたときです。

プロパティタイプ説明

type

String

join

replyToken

String

このイベントへの応答に使用するトークン

参加イベントの例

{

"replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",

"type": "join",

"timestamp": 1462629479859,

"source": {

"type": "group",

"groupId": "C4af4980629..."

}

}

退出イベント

ユーザーがグループからボットを削除したか、ボットがグループまたはトークルームから退出したことを示すイベントです。

プロパティタイプ説明

type

String

leave

退出イベントの例

{

"type": "leave",

"timestamp": 1462629479859,

"source": {

"type": "group",

"groupId": "C4af4980629..."

}

}

ポストバックイベント

ユーザーが、テンプレートメッセージに関連づけられた、ポストバックを開始するアクションを実行したことを示すイベントオブジェクトです。ポストバックイベントには応答できます。

プロパティタイプ説明

type

String

postback

replyToken

String

このイベントへの応答に使用するトークン

postback.data

String

ポストバックデータ

postback.params

Object

日時選択アクションを介してユーザーが選択した日時を含むJSONオブジェクト。

日時選択アクションによるポストバックアクションの場合にのみ返されます。

ポストバックイベントの例

{

"type":"postback",

"replyToken":"b60d432864f44d079f6d8efe86cf404b",

"source":{

"userId":"U91eeaf62d...",

"type":"user"

},

"timestamp":1513669370317,

"postback":{

"data":"storeId=12345",

"params":{

"datetime":"2017-12-25T01:00"

}

}

}

postback.paramsオブジェクト

日時選択アクションを介してユーザーが選択した日時を含むオブジェクトです。full-datetime-hour、およびtime-minuteの形式は、RFC3339プロトコルで定義されています。

プロパティ形式説明

date

full-date

ユーザーが選択した日付。dateモードの場合にのみ含まれます。

time

time-hour ":" time-minute

ユーザーが選択した時刻。timeモードの場合にのみ含まれます。

datetime

full-date "T" time-hour ":" time-minute

ユーザーが選択した日付および時刻。datetimeモードの場合にのみ含まれます。

postback.paramsオブジェクトの例

{

"datetime":"2017-12-25T01:00"

}

ビーコンイベント

LINE Beaconデバイスの受信圏をユーザーが出入りしたことを示すイベントオブジェクトです。ビーコンイベントには応答できます。

プロパティタイプ説明

type

String

beacon

replyToken

String

このイベントへの応答に使用するトークン

beacon.hwid

String

検出されたビーコンのハードウェアID

beacon.type

String

ビーコンイベントのタイプ。「ビーコンイベントのタイプ」を参照してください。

beacon.dm

String

検出されたビーコンのデバイスメッセージ。このメッセージは、ボットへの通知を目的としてビーコンにより生成されるデータです。Device messageプロパティをサポートするデバイスからのwebhookにのみ含まれます。

詳しくは、LINE Simple Beaconの仕様を参照してください。

ビーコンイベントのタイプ

beacon.type説明

enter

ユーザーがビーコンの受信圏内に入りました。

leave

【このleaveイベントの利用は非推奨です。】ユーザーがビーコンの受信圏外に出ました。

注:leaveイベントは企業ユーザー様にはご利用いただけません。この機能のご利用をご希望の企業ユーザー様は、LINEの貴社担当者までお問い合わせください。

banner

ユーザーがビーコンバナーをタップしました。

ビーコンバナーの利用をご希望の場合は、LINE Partnerウェブサイトからお問い合わせください。

ビーコンイベントの例

{

"replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",

"type": "beacon",

"timestamp": 1462629479859,

"source": {

"type": "user",

"userId": "U4af4980629..."

},

"beacon": {

"hwid": "d41d8cd98f",

"type": "enter"

}

}

アカウント連携イベント

ユーザーがLINEアカウントとプロバイダーが提供するサービスのアカウントを連携したことを示すイベントオブジェクトです。アカウント連携イベントには応答できます。

連携トークンの期限が切れている、または使用済みの場合は、Webhookイベント自体が送信されず、ユーザーにエラーが表示されます。

プロパティタイプ説明

type

String

accountLink

replyToken

String

このイベントへの応答に使用するトークン。連携に失敗した場合はこの値は含まれません。

link

Object

linkオブジェクト。アカウント連携が成功したかどうかと、プロバイダーのサービスのユーザーIDから生成したノンスが含まれます。

アカウント連携イベントの例

{

"type": "accountLink",

"replyToken": "b60d432864f44d079f6d8efe86cf404b",

"source": {

"userId": "U91eeaf62d...",

"type": "user"

},

"timestamp": 1513669370317,

"link": {

"result": "ok",

"nonce": "xxxxxxxxxxxxxxx"

}

}

linkオブジェクト

プロパティタイプ説明

result

String

連携が成功したかどうかを示す値。以下のどちらかになります。

  • ok:連携が成功したことを示します。

  • failed:ユーザーのすり替えなどが原因で、連携が失敗したことを示します。

nonce

String

ユーザーIDの検証時に指定したノンス

linkオブジェクトの例

"link": {

"result": "ok",

"nonce": "xxxxxxxxxxxxxxx"

}

OAuth

チャネルアクセストークンを発行する

注:この方法では、30日間有効な短期のチャネルアクセストークンが発行されます。長期のチャネルアクセストークンを発行するには、コンソールにある[再発行]ボタンを使います(長期のアクセストークンは、公式アカウントまたは特定のLINE@プランをご利用の場合はご利用いただけません)。

短期のチャネルアクセストークンを発行するAPIです。

最大で30件のトークンを発行できます。上限を超過した場合は、発行順に既存のチャネルアクセストークンが取り消されます。

HTTPリクエスト

POST https://api.line.me/v2/oauth/accessToken

リクエストヘッダー

リクエストヘッダー説明

Content-Type

application/x-www-form-urlencoded

リクエストボディ

フィールドタイプ説明

grant_type

String

client_credentials

client_id

String

チャネルID。コンソールで確認できます。

client_secret

String

チャネルシークレット。コンソールで確認できます。

リクエストの例

curl -v -X POST https://api.line.me/v2/oauth/accessToken \

-H "Content-Type:application/x-www-form-urlencoded" \

--data-urlencode 'grant_type=client_credentials' \

--data-urlencode 'client_id={channel ID}' \

--data-urlencode 'client_secret={channel secret}'

レスポンス

HTTPステータスコード200および以下の情報を含むJSONオブジェクトを返します。

プロパティタイプ説明

access_token

String

短期のチャネルアクセストークン。有効期間は30日です。

注:チャネルアクセストークンは更新できません。

expires_in

Number

チャネルアクセストークンが発行されてから有効期限が切れるまでの秒数

token_type

String

Bearer

レスポンスの例

{

"access_token":"W1TeHCgfH2Liwa.....",

"expires_in":2592000,

"token_type":"Bearer"

}

エラーレスポンス

HTTPステータスコード400および以下の情報を含むJSONオブジェクトを返します。

プロパティタイプ説明

error

String

エラーの概要

error_description

String

エラーの内容。特定の状況では返されません。

エラーレスポンスの例

{

"error":"invalid_request",

"error_description":"some parameters missed or invalid"

}

チャネルアクセストークンを取り消す

チャネルアクセストークンを取り消すAPIです。

HTTPリクエスト

POST https://api.line.me/v2/oauth/revoke

リクエストヘッダー

リクエストヘッダー説明

Content-Type

application/x-www-form-urlencoded

リクエストボディ

フィールドタイプ説明

access_token

String

チャネルアクセストークン

レスポンス

ステータスコード200および空のレスポンスボディを返します。無効なチャネルアクセストークンを指定した場合はエラーが返りません。

リクエストの例

curl -v -X POST https://api.line.me/v2/oauth/revoke \

-H "Content-Type: application/x-www-form-urlencoded" \

--data-urlencode 'access_token={channel access token}'

エラーレスポンス

HTTPステータスコード400および以下の情報を含むJSONオブジェクトを返します。

プロパティタイプ説明

error

String

エラーの概要

error_description

String

エラーの内容。特定の状況では返されません。

エラーレスポンスの例

{

"error":"invalid_request",

"error_description":"some parameters missed or invalid"

}

メッセージ

応答メッセージを送る

ユーザー、グループ、またはトークルームからのイベントに対して応答メッセージを送信するAPIです。

イベントが発生するとwebhookを使って通知されます。応答できるイベントには応答トークンが発行されます。

応答トークンは一定の期間が経過すると無効になるため、メッセージを受信したらすぐに応答を返す必要があります。応答トークンは1回のみ使用できます。

HTTPリクエスト

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

リクエストヘッダー

リクエストヘッダー説明

Content-Type

application/json

Authorization

Bearer {channel access token}

リクエストボディ

プロパティタイプ必須説明

replyToken

String

必須

Webhookで受信する応答トークン

messages

メッセージオブジェクトの配列

必須

送信するメッセージ

最大件数:5

リクエストの例

curl -v -X POST https://api.line.me/v2/bot/message/reply \

-H 'Content-Type:application/json' \

-H 'Authorization: Bearer {channel access token}' \

-d '{

"replyToken":"nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",

"messages":[

{

"type":"text",

"text":"Hello, user"

},

{

"type":"text",

"text":"May I help you?"

}

]

}'

レスポンス

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

レスポンスの例

{}

プッシュメッセージを送る

注:プッシュメッセージは一部のプランでのみご利用いただけます。詳しくは、LINE@サイトを参照してください。

ユーザー、グループ、またはトークルームに、任意のタイミングでプッシュメッセージを送信するAPIです。

HTTPリクエスト

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

リクエストヘッダー

リクエストヘッダー説明

Content-Type

application/json

Authorization

Bearer {channel access token}

リクエストボディ

プロパティタイプ必須説明

to

String

必須

送信先のID。Webhookイベントオブジェクトで返される、userIdgroupId、またはroomIdの値を使用します。LINEアプリに表示されるLINE IDは使用しないでください。

messages

メッセージオブジェクトの配列

必須

送信するメッセージ

最大件数:5

リクエストの例

curl -v -X POST https://api.line.me/v2/bot/message/push \

-H 'Content-Type:application/json' \

-H 'Authorization: Bearer {channel access token}' \

-d '{

"to": "U4af4980629...",

"messages":[

{

"type":"text",

"text":"Hello, world1"

},

{

"type":"text",

"text":"Hello, world2"

}

]

}'

レスポンス

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

レスポンスの例

{}

複数のユーザーにメッセージを送る

注:プッシュメッセージに対応するプランでのみご利用いただけます。詳しくは、LINE@サイトを参照してください。

複数のユーザーに、任意のタイミングでプッシュメッセージを送信するAPIです。グループまたはトークルームにメッセージを送ることはできません。

HTTPリクエスト

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

リクエストヘッダー

リクエストヘッダー説明

Content-Type

application/json

Authorization

Bearer {channel access token}

リクエストボディ

プロパティタイプ必須説明

to

文字列の配列

必須

ユーザーIDの配列。Webhookイベントオブジェクトで返されるuserIdの値を使用します。LINEアプリに表示されるLINE IDは使用しないでください。

最大ユーザーID数:150

messages

メッセージオブジェクトの配列

必須

送信するメッセージ

最大件数:5

Flex Messageは送信できません。

リクエストの例

curl -v -X POST https://api.line.me/v2/bot/message/multicast \

-H 'Content-Type:application/json' \

-H 'Authorization: Bearer {channel access token}' \

-d '{

"to": ["U4af4980629...","U0c229f96c4..."],

"messages":[

{

"type":"text",

"text":"Hello, world1"

},

{

"type":"text",

"text":"Hello, world2"

}

]

}'

レスポンス

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

レスポンスの例

{}

コンテンツを取得する

ユーザーが送信した画像、動画、および音声のデータを取得するAPIです。

HTTPリクエスト

GET https://api.line.me/v2/bot/message/{messageId}/content

リクエストヘッダー

リクエストヘッダー説明

Authorization

Bearer {channel access token}

パスパラメータ

パラメータ説明

messageId

メッセージID

レスポンス

ステータスコード200およびコンテンツのバイナリデータを返します。

メッセージが送信されてから一定期間後に、コンテンツは自動的に削除されます。コンテンツの保存期間は保証されません。

リクエストの例

curl -v -X GET https://api.line.me/v2/bot/message/{messageId}/content \

-H 'Authorization: Bearer {channel access token}'

プロフィール

プロフィールを取得する

ユーザープロフィール情報を取得するAPIです。

HTTPリクエスト

GET https://api.line.me/v2/bot/profile/{userId}

リクエストヘッダー

リクエストヘッダー説明

Authorization

Bearer {channel access token}

パスパラメータ

パラメータ説明

userId

webhookイベントオブジェクトで返されるユーザーID。LINEアプリに表示されるLINE IDは使用しないでください。

リクエストの例

curl -v -X GET https://api.line.me/v2/bot/profile/{userId} \

-H 'Authorization: Bearer {channel access token}'

レスポンス

ステータスコード200および以下の情報を含むJSONオブジェクトを返します。

プロパティタイプ説明

displayName

String

表示名

userId

String

ユーザーID

pictureUrl

String

画像のURL

statusMessage

String

ステータスメッセージ

レスポンスの例

{

"displayName":"LINE taro",

"userId":"U4af4980629...",

"pictureUrl":"http://obs.line-apps.com/...",

"statusMessage":"Hello, LINE!"

}

グループ

グループメンバーのプロフィールを取得する

ボットが参加しているグループのメンバーの、ユーザープロフィールを取得するAPIです。ボットを友だちとして追加していないユーザーや、ボットをブロックしているユーザーのプロフィールも取得します。

HTTPリクエスト

GET https://api.line.me/v2/bot/group/{groupId}/member/{userId}

リクエストヘッダー

リクエストヘッダー説明

Authorization

Bearer {channel access token}

パスパラメータ

パラメータ説明

groupId

グループID。Webhookイベントオブジェクトsourceオブジェクトで返されます。

userId

ユーザーID。Webhookイベントオブジェクトsourceオブジェクトで返されます。LINEアプリに表示されるLINE IDは使用しないでください。

リクエストの例

curl -v -X GET https://api.line.me/v2/bot/group/{groupId}/member/{userId} \

-H 'Authorization: Bearer {channel access token}'

レスポンス

ステータスコード200および以下の情報を含むJSONオブジェクトを返します。

プロパティタイプ説明

displayName

String

表示名

userId

String

ユーザーID

pictureUrl

String

プロフィール画像のURL

レスポンスの例

{

"displayName":"LINE taro",

"userId":"U4af4980629...",

"pictureUrl":"http://obs.line-apps.com/..."

}

グループメンバーのユーザーIDを取得する

注:この機能は認証済みLINE@アカウントまたは公式アカウントのみでご利用いただけます。詳しくは、LINE@サイトの「LINE@アカウントを作成しましょう」ページまたはLINE Partnerサイトを参照してください。

ボットが参加しているグループのメンバーの、ユーザーIDを取得するAPIです。ボットを友だちとして追加していないユーザーや、ボットをブロックしているユーザーのユーザーIDも取得します。

HTTPリクエスト

GET https://api.line.me/v2/bot/group/{groupId}/members/ids

リクエストヘッダー

リクエストヘッダー説明

Authorization

Bearer {channel access token}

パスパラメータ

パラメータ必須説明

groupId

必須

グループID。Webhookイベントオブジェクトsourceオブジェクトで返されます。

クエリパラメータ

パラメータ必須説明

start

任意

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

リクエストの例

curl -v -X GET https://api.line.me/v2/bot/group/{groupId}/members/ids?start={continuationToken} \

-H 'Authorization: Bearer {channel access token}'

レスポンス

ステータスコード200および以下のプロパティを含むJSONオブジェクトを返します。

プロパティタイプ説明

memberIds

文字列の配列

グループメンバーのユーザーIDのリスト。memberIdsで返されるユーザーIDの数は可変です。公式アカウントの利用条件に同意していないユーザーは、memberIdsに含まれません。

最大ユーザー数:100

next

String

継続トークン。グループメンバーのユーザーIDの、次の配列を取得するために使用します。このプロパティは、前回までのレスポンスのmemberIdsで取得しきれなかったユーザーIDがある場合にのみ返されます。

レスポンスの例

{

"memberIds":[

"U4af4980629...",

"U0c229f96c4...",

"U95afb1d4df..."

],

"next":"jxEWCEEP..."

}

グループから退出する

グループから退出するAPIです。

HTTPリクエスト

POST https://api.line.me/v2/bot/group/{groupId}/leave

リクエストヘッダー

リクエストヘッダー説明

Authorization

Bearer {channel access token}

パスパラメータ

パラメータ説明

groupId

グループID。Webhookイベントオブジェクトsourceオブジェクトで返されます。

リクエストの例

curl -v -X POST https://api.line.me/v2/bot/group/{groupId}/leave \

-H 'Authorization: Bearer {channel access token}'

レスポンス

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

レスポンスの例

{}

トークルーム

トークルームメンバーのプロフィールを取得する

ボットが参加しているトークルームのメンバーの、ユーザープロフィールを取得するAPIです。ボットを友だちとして追加していないユーザーや、ボットをブロックしているユーザーのプロフィールも取得します。

HTTPリクエスト

GET https://api.line.me/v2/bot/room/{roomId}/member/{userId}

リクエストヘッダー

リクエストヘッダー説明

Authorization

Bearer {channel access token}

パスパラメータ

パラメータ説明

roomId

トークルームID。Webhookイベントオブジェクトsourceオブジェクトで返されます。

userId

ユーザーID。Webhookイベントオブジェクトsourceオブジェクトで返されます。LINEアプリに表示されるLINE IDは使用しないでください。

リクエストの例

curl -v -X GET https://api.line.me/v2/bot/room/{roomId}/member/{userId} \

-H 'Authorization: Bearer {channel access token}'

レスポンス

ステータスコード200および以下の情報を含むJSONオブジェクトを返します。

プロパティタイプ説明

displayName

String

表示名

userId

String

ユーザーID

pictureUrl

String

プロフィール画像のURL

レスポンスの例

{

"displayName":"LINE taro",

"userId":"U4af4980629...",

"pictureUrl":"http://obs.line-apps.com/..."

}

トークルームメンバーのユーザーIDを取得する

注:この機能は認証済みLINE@アカウントまたは公式アカウントのみでご利用いただけます。詳しくは、LINE@サイトの「LINE@アカウントを作成しましょう」ページまたはLINE Partnerサイトを参照してください。

ボットが参加しているトークルームのメンバーの、ユーザーIDを取得するAPIです。ボットを友だちとして追加していないユーザーや、ボットをブロックしているユーザーのユーザーIDも取得します。

HTTPリクエスト

GET https://api.line.me/v2/bot/room/{roomId}/members/ids

リクエストヘッダー

リクエストヘッダー説明

Authorization

Bearer {channel access token}

パスパラメータ

パラメータ必須説明

roomId

必須

トークルームID。Webhookイベントオブジェクトsourceオブジェクトで返されます。

クエリパラメータ

パラメータ必須説明

start

任意

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

リクエストの例

curl -v -X GET https://api.line.me/v2/bot/room/{roomId}/members/ids?start={continuationToken} \

-H 'Authorization: Bearer {channel access token}'

レスポンス

ステータスコード200および以下のプロパティを含むJSONオブジェクトを返します。

プロパティタイプ説明

memberIds

文字列の配列

トークルームメンバーのユーザーIDのリスト。memberIdsで返されるユーザーIDの数は可変です。公式アカウントの利用条件に同意していないユーザーは、memberIdsに含まれません。

最大ユーザー数:100

next

String

継続トークン。トークルームメンバーのユーザーIDの、次の配列を取得するために使用します。このプロパティは、前回までのレスポンスのmemberIdsで取得しきれなかったユーザーIDがある場合にのみ返されます。

レスポンスの例

{

"memberIds":[

"U4af4980629...",

"U0c229f96c4...",

"U95afb1d4df..."

],

"next":"jxEWCEEP..."

}

トークルームから退出する

トークルームから退出するAPIです。

HTTPリクエスト

POST https://api.line.me/v2/bot/room/{roomId}/leave

リクエストヘッダー

リクエストヘッダー説明

Authorization

Bearer {channel access token}

パスパラメータ

パラメータ説明

roomId

トークルームID。Webhookイベントオブジェクトsourceオブジェクトで返されます。

リクエストの例

curl -v -X POST https://api.line.me/v2/bot/room/{roomId}/leave \

-H 'Authorization: Bearer {channel access token}'

レスポンス

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

レスポンスの例

{}

リッチメニュー

注:Messaging APIで作成したリッチメニューは、LINE AndroidおよびLINE iOSのバージョン7.14.0以降でサポートされます。

ボットのトーク画面に表示される、カスタマイズ可能なメニューです。詳しくは、「リッチメニューを使う」を参照してください。

リッチメニューを取得する

IDを指定してリッチメニューを取得するAPIです。

HTTPリクエスト

GET https://api.line.me/v2/bot/richmenu/{richMenuId}

リクエストヘッダー

リクエストヘッダー説明

Authorization

Bearer {channel access token}

パスパラメータ

パラメータ必須説明

richMenuId

必須

アップロードされたリッチメニューのID

リクエストの例

curl -v -X GET https://api.line.me/v2/bot/richmenu/{richMenuId} \

-H 'Authorization: Bearer {channel access token}'

レスポンス

ステータスコード200と、リッチメニューレスポンスオブジェクトを含むJSONレスポンスが返されます。

レスポンスの例

{

"richMenuId": "{richMenuId}",

"size": {

"width": 2500,

"height": 1686

},

"selected": false,

"areas": [

{

"bounds": {

"x": 0,

"y": 0,

"width": 2500,

"height": 1686

},

"action": {

"type": "postback"

"data": "action=buy&itemid=123"

}

}

]

}

リッチメニューを作成する

リッチメニューを作成するAPIです。

リッチメニューを表示するには、リッチメニューの画像をアップロードし、さらにリッチメニューをユーザーとリンクする必要があります。1つのボットに対して最大で1000件のリッチメニューを作成できます。

HTTPリクエスト

POST https://api.line.me/v2/bot/richmenu

リクエストヘッダー

リクエストヘッダー説明

Authorization

Bearer {channel access token}

Content-Type

application/json

リクエストボディ

リッチメニューオブジェクトとして表されるリッチメニューを指定します。

リクエストの例

curl -v -X POST https://api.line.me/v2/bot/richmenu \

-H 'Authorization: Bearer {channel access token}' \

-H 'Content-Type: application/json' \

-d \

'{

"size": {

"width": 2500,

"height": 1686

},

"selected": false,

"name": "Nice richmenu",

"chatBarText": "Tap here",

"areas": [

{

"bounds": {

"x": 0,

"y": 0,

"width": 2500,

"height": 1686

},

"action": {

"type": "postback",

"data": "action=buy&itemid=123"

}

}

]

}'

レスポンス

ステータスコード200およびリッチメニューIDを返します。

レスポンスの例

{

"richMenuId": "{richMenuId}"

}

リッチメニューを削除する

リッチメニューを削除するAPIです。

HTTPリクエスト

DELETE https://api.line.me/v2/bot/richmenu/{richMenuId}

リクエストヘッダー

リクエストヘッダー説明

Authorization

Bearer {channel access token}

パスパラメータ

パラメータ必須説明

richMenuId

必須

アップロードされたリッチメニューのID

リクエストの例

curl -v -X DELETE https://api.line.me/v2/bot/richmenu/{richMenuId} \

-H 'Authorization: Bearer {channel access token}'

レスポンス

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

レスポンスの例

{}

ユーザーのリッチメニューのIDを取得する

ユーザーにリンクされたリッチメニューのIDを取得するAPIです。

HTTPリクエスト

GET https://api.line.me/v2/bot/user/{userId}/richmenu

リクエストヘッダー

リクエストヘッダー説明

Authorization

Bearer {channel access token}

パスパラメータ

パラメータ必須説明

userId

必須

ユーザーID。Webhookイベントオブジェクトsourceオブジェクトで返されます。LINEアプリに表示されるLINE IDは使用しないでください。

リクエストの例

curl -v -X GET https://api.line.me/v2/bot/user/{userId}/richmenu \

-H 'Authorization: Bearer {channel access token}'

レスポンス

ステータスコード200およびリッチメニューIDを表すJSONオブジェクトを返します。

レスポンスの例

{

"richMenuId": "{richMenuId}"

}

リッチメニューとユーザーをリンクする

リッチメニューとユーザーをリンクするAPIです。複数のリッチメニューを1人のユーザーに同時にリンクすることはできません。

HTTPリクエスト

POST https://api.line.me/v2/bot/user/{userId}/richmenu/{richMenuId}

リクエストヘッダー

リクエストヘッダー説明

Authorization

Bearer {channel access token}

パスパラメータ

パラメータ必須説明

richMenuId

必須

アップロードされたリッチメニューのID

userId

必須

ユーザーID。Webhookイベントオブジェクトsourceオブジェクトで返されます。LINEアプリに表示されるLINE IDは使用しないでください。

リクエストの例

curl -v -X POST https://api.line.me/v2/bot/user/{userId}/richmenu/{richMenuId} \

-H "Authorization: Bearer {channel access token}" -d ""

レスポンス

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

レスポンスの例

{}

リッチメニューとユーザーのリンクを解除する

リッチメニューとユーザーのリンクを解除するAPIです。

HTTPリクエスト

DELETE https://api.line.me/v2/bot/user/{userId}/richmenu

リクエストヘッダー

リクエストヘッダー説明

Authorization

Bearer {channel access token}

パスパラメータ

パラメータ必須説明

userId

必須

ユーザーID。Webhookイベントオブジェクトsourceオブジェクトで返されます。LINEアプリに表示されるLINE IDは使用しないでください。

リクエストの例

curl -v -X DELETE https://api.line.me/v2/bot/user/{userId}/richmenu \

-H 'Authorization: Bearer {channel access token}'

レスポンス

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

レスポンスの例

{}

リッチメニューの画像をダウンロードする

リッチメニューの画像をダウンロードするAPIです。

HTTPリクエスト

GET https://api.line.me/v2/bot/richmenu/{richMenuId}/content

リクエストヘッダー

リクエストヘッダー説明

Authorization

Bearer {channel access token}

パスパラメータ

パラメータ必須説明

richMenuId

必須

画像をダウンロードするリッチメニューのID

レスポンス

ステータスコード200およびリッチメニュー画像のバイナリデータを返します。リクエストの例に示すように、画像をダウンロードできます。

リクエストの例

curl -v -X GET https://api.line.me/v2/bot/richmenu/{richMenuId}/content \

-H 'Authorization: Bearer {channel access token}' \

-o picture.jpg

リッチメニューの画像をアップロードする

画像をアップロードしてリッチメニューに付加するAPIです。

リッチメニューの画像は以下の要件を満たす必要があります。

  • 画像フォーマット:JPEGまたはPNG

  • 画像サイズ:2500×1686または2500×843ピクセル

  • 最大ファイルサイズ:1MB

注:リッチメニューに付加された画像を置き換えることはできません。リッチメニューの画像を更新するには、新しいリッチメニューオブジェクトを作成して、新しい画像をアップロードします。

HTTPリクエスト

POST https://api.line.me/v2/bot/richmenu/{richMenuId}/content

リクエストヘッダー

リクエストヘッダー説明

Authorization

Bearer {channel access token}

Content-Type

image/jpegまたはimage/png

Content-Length

リクエストボディのオクテット(8ビットバイト)での長さ。正の値である必要があります。

パスパラメータ

パラメータ必須説明

richMenuId

必須

画像を付加するリッチメニューのID

リクエストの例

curl -v -X POST https://api.line.me/v2/bot/richmenu/{richMenuId}/content \

-H "Authorization: Bearer {channel access token}" \

-H "Content-Type: image/jpeg" \

-T image.jpg

レスポンス

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

レスポンスの例

{}

リッチメニューのリストを取得する

アップロードされたすべてのリッチメニューを取得するAPIです。

HTTPリクエスト

GET https://api.line.me/v2/bot/richmenu/list

リクエストヘッダー

リクエストヘッダー説明

Authorization

Bearer {channel access token}

リクエストの例

curl -v -X GET https://api.line.me/v2/bot/richmenu/list \

-H 'Authorization: Bearer {channel access token}'

レスポンス

ステータスコード200およびリッチメニューレスポンスオブジェクトのリストを返します。

プロパティタイプ説明

richmenus

Array

リッチメニューレスポンスオブジェクトの配列

レスポンスの例

{

"richmenus": [

{

"richMenuId": "{richMenuId}",

"size": {

"width": 2500,

"height": 1686

},

"selected": false,

"areas": [

{

"bounds": {

"x": 0,

"y": 0,

"width": 2500,

"height": 1686

},

"action": {

"type": "postback"

"data": "action=buy&itemid=123"

}

}

]

}

]

}

メッセージオブジェクト

送信するメッセージの内容を表すJSONオブジェクトです。

テキストメッセージ

プロパティタイプ必須説明

type

String

必須

text

text

String

必須

メッセージのテキスト。以下の絵文字を含めることができます。

最大文字数:2000

テキストメッセージの例

{

"type": "text",

"text": "Hello, world"

}

絵文字を含むテキストメッセージの例


{

"type": "text",

"text": "\uDBC0\uDC84 LINE emoji"

}

スタンプメッセージ

プロパティタイプ必須説明

type

String

必須

sticker

packageId

String

必須

スタンプセットのパッケージID。パッケージIDについては、スタンプリストを参照してください。

stickerId

String

必須

スタンプID。Messaging APIで送信できるスタンプのスタンプIDについては、スタンプリストを参照してください。

スタンプメッセージの例

{

"type": "sticker",

"packageId": "1",

"stickerId": "1"

}

画像メッセージ

プロパティタイプ必須説明

type

String

必須

image

originalContentUrl

String

必須

画像のURL(最大文字数:1000)

HTTPS

JPEG

最大画像サイズ:1024×1024

最大ファイルサイズ:1MB

previewImageUrl

String

必須

プレビュー画像のURL(最大文字数:1000)

HTTPS

JPEG

最大画像サイズ:240×240

最大ファイルサイズ:1MB

画像メッセージの例

{

"type": "image",

"originalContentUrl": "https://example.com/original.jpg",

"previewImageUrl": "https://example.com/preview.jpg"

}

動画メッセージ

プロパティタイプ必須説明

type

String

必須

video

originalContentUrl

String

必須

動画ファイルのURL(最大文字数:1000)

HTTPS

mp4

最大長:1分

最大ファイルサイズ:10MB


一定以上に縦長・横長の動画を送信した場合、一部の環境では動画の一部が欠けて表示される場合があります。

previewImageUrl

String

必須

プレビュー画像のURL(最大文字数:1000)

HTTPS

JPEG

最大画像サイズ:240×240

最大ファイルサイズ:1MB

動画メッセージの例

{

"type": "video",

"originalContentUrl": "https://example.com/original.mp4",

"previewImageUrl": "https://example.com/preview.jpg"

}

音声メッセージ

プロパティタイプ必須説明

type

String

必須

audio

originalContentUrl

String

必須

音声ファイルのURL(最大文字数:1000)

HTTPS

m4a

最大長:1分

最大ファイルサイズ:10MB

duration

Number

必須

音声ファイルの長さ(ミリ秒)

音声メッセージの例

{

"type": "audio",

"originalContentUrl": "https://example.com/original.m4a",

"duration": 60000

}

位置情報メッセージ

プロパティタイプ必須説明

type

String

必須

location

title

String

必須

タイトル

最大文字数:100

address

String

必須

住所

最大文字数:100

latitude

Decimal

必須

緯度

longitude

Decimal

必須

経度

位置情報メッセージの例

{

"type": "location",

"title": "my location",

"address": "〒150-0002 東京都渋谷区渋谷2丁目21−1",

"latitude": 35.65910807942215,

"longitude": 139.70372892916203

}

イメージマップメッセージ

注:イメージマップメッセージは、以下のバージョンのLINEアプリで対応しています。

iOS版3.9.1以降、Android版3.9.2以降、Windows Phone版3.6.0以降、WindowsおよびMac OS版4.4.1以降

イメージマップは、1つ以上のリンクが設定された画像です。画像全体に1つのリンクを割り当てることも、画像を区切って複数のリンクを割り当てることもできます。

プロパティタイプ必須説明

type

String

必須

imagemap

baseUrl

String

必須

画像のベースURL(最大文字数:1000)

HTTPS

altText

String

必須

代替テキスト

最大文字数:400

baseSize.width

Number

必須

基本画像の幅(px単位)。1040を指定します。

baseSize.height

Number

必須

基本画像の幅を1040pxとした場合の高さ

actions

イメージマップアクションオブジェクトの配列

必須

画像がタップされたときのアクション

最大件数:50

画像の設定方法

イメージマップに使える画像の仕様は以下のとおりです。

  • 画像フォーマット:JPEGまたはPNG

  • 画像の幅:240px、300px、460px、700px、および1040px

  • データサイズ:最大1MB

5つの異なるサイズの画像を「baseUrl/{画像の幅サイズ}」の形式でアクセスできるようにします。これにより、デバイスに応じて望ましい解像度でLINEアプリに画像がダウンロードされます。

たとえば、ベースURLが以下の場合を考えます。

https://example.com/images/cats

幅が700pxの画像のURLは以下になります。

https://example.com/images/cats/700

イメージマップアクションオブジェクト

イメージマップに設定するアクションとタップ領域を表すオブジェクトです。

領域がタップされると、uriの場合は指定するURIにユーザーがリダイレクトされ、messageの場合は指定するメッセージが送信されます。

2つのタップ領域を持つイメージマップメッセージの例

{

"type": "imagemap",

"baseUrl": "https://example.com/bot/images/rm001",

"altText": "This is an imagemap",

"baseSize": {

"height": 1040,

"width": 1040

},

"actions": [

{

"type": "uri",

"linkUri": "https://example.com/",

"area": {

"x": 0,

"y": 0,

"width": 520,

"height": 1040

}

},

{

"type": "message",

"text": "Hello",

"area": {

"x": 520,

"y": 0,

"width": 520,

"height": 1040

}

}

]

}

イメージマップURIアクションオブジェクト

プロパティタイプ必須説明

type

String

必須

uri

label

String

任意

アクションのラベル。ユーザーデバイスのアクセシビリティ機能が有効な場合に読み上げられます。

最大文字数:50

LINE iOSのバージョン8.2.0以降でサポートされます。

linkUri

String

必須

ウェブページのURL

最大文字数:1000

area

イメージマップ領域オブジェクト

必須

タップ領域の定義

イメージマップURIアクションオブジェクトの例

{

"type":"uri",

"label":"https://example.com/",

"linkUri":"https://example.com/",

"area":{

"x":0,

"y":0,

"width":520,

"height":1040

}

}

イメージマップメッセージアクションオブジェクト

プロパティタイプ必須説明

type

String

必須

message

label

String

任意

アクションのラベル。ユーザーデバイスのアクセシビリティ機能が有効な場合に読み上げられます。

最大文字数:50

LINE iOSのバージョン8.2.0以降でサポートされます。

text

String

必須

送信するメッセージ

最大文字数:400

iOSおよびAndroid版のLINEアプリでのみサポートされます。

area

イメージマップ領域オブジェクト

必須

タップ領域の定義

イメージマップメッセージアクションオブジェクトの例

{

"type":"message",

"label":"hello",

"text":"hello",

"area":{

"x":520,

"y":0,

"width":520,

"height":1040

}

}

イメージマップ領域オブジェクト

タップ領域のサイズを表すオブジェクトです。画像の左上が座標の原点です。baseSize.widthプロパティとbaseSize.heightプロパティに基づいて指定します。

プロパティタイプ必須説明

x

Number

必須

領域の左上角からの横方向の相対位置

y

Number

必須

領域の左上角からの縦方向の相対位置

width

Number

必須

タップ領域の幅

height

Number

必須

タップ領域の高さ

イメージマップ領域オブジェクトの例

{

"x":520,

"y":0,

"width":520,

"height":1040

}

テンプレートメッセージ

注:テンプレートメッセージはiOS版およびAndroid版のLINE 6.7.0以降で対応しています。

テンプレートメッセージは、あらかじめレイアウトが定義されたテンプレートをカスタマイズして構築するメッセージです。詳しくは、「テンプレートメッセージ」を参照してください。

以下のタイプのテンプレートを利用できます。

テンプレートメッセージオブジェクトの共通プロパティ

以下のプロパティは、すべてのテンプレートメッセージオブジェクトで共通です。

プロパティタイプ必須説明

type

String

必須

template

altText

String

必須

代替テキスト

最大文字数:400

template

Object

必須

ボタン確認カルーセル、または画像カルーセルオブジェクト

ボタンテンプレート

画像、タイトル、テキストに加えて、複数のアクションボタンが含まれたテンプレートです。

プロパティタイプ必須説明

type

String

必須

buttons

thumbnailImageUrl

String

任意

画像URL(最大文字数:1000)

HTTPS

JPEGまたはPNG

最大横幅サイズ:1024px

最大ファイルサイズ:1MB

imageAspectRatio

String

任意

画像のアスペクト比。以下のいずれかの値を指定します。

  • rectangle: 1.51:1

  • square: 1:1

デフォルト値はrectangleです。

imageSize

String

任意

画像の表示形式。以下のいずれかの値を指定します。

  • cover:画像領域全体に画像を表示します。画像領域に収まらない部分は切り詰められます。

  • contain:画像領域に画像全体を表示します。縦長の画像では左右に、横長の画像では上下に余白が表示されます。

デフォルト値はcoverです。

imageBackgroundColor

String

任意

画像の背景色。RGB値で設定します。デフォルト値は#FFFFFF(白)です。

title

String

任意

タイトル

最大文字数:40

text

String

必須

メッセージテキスト

画像もタイトルも指定しない場合の最大文字数:160

画像またはタイトルを指定する場合の最大文字数:60

defaultAction

アクションオブジェクト

任意

画像、タイトル、テキストの領域全体に対して設定できる、タップされたときのアクション

actions

アクションオブジェクトの配列

必須

タップされたときのアクション

最大件数:4

ボタンテンプレートメッセージには高さに制限があり、textの表示領域がこの制限を超えると、領域の下部が切り詰められます。このため、メッセージのテキストが最大文字数以内であっても、文字幅によっては完全に表示されない可能性があります。

ボタンテンプレートメッセージの例

{

"type": "template",

"altText": "This is a buttons template",

"template": {

"type": "buttons",

"thumbnailImageUrl": "https://example.com/bot/images/image.jpg",

"imageAspectRatio": "rectangle",

"imageSize": "cover",

"imageBackgroundColor": "#FFFFFF",

"title": "Menu",

"text": "Please select",

"defaultAction": {

"type": "uri",

"label": "View detail",

"uri": "http://example.com/page/123"

},

"actions": [

{

"type": "postback",

"label": "Buy",

"data": "action=buy&itemid=123"

},

{

"type": "postback",

"label": "Add to cart",

"data": "action=add&itemid=123"

},

{

"type": "uri",

"label": "View detail",

"uri": "http://example.com/page/123"

}

]

}

}

確認テンプレート

2つのアクションボタンを表示するテンプレートです。

プロパティタイプ必須説明

type

String

必須

confirm

text

String

必須

メッセージのテキスト

最大文字数:240

actions

アクションオブジェクトの配列

必須

タップされたときのアクション

2つのボタンに1つずつアクションを設定します。

確認テンプレートメッセージには高さに制限があり、textの表示領域がこの制限を超えると、領域の下部が切り詰められます。このため、メッセージのテキストが最大文字数以内であっても、文字幅によっては完全に表示されない可能性があります。

確認テンプレートメッセージの例

{

"type": "template",

"altText": "this is a confirm template",

"template": {

"type": "confirm",

"text": "Are you sure?",

"actions": [

{

"type": "message",

"label": "Yes",

"text": "yes"

},

{

"type": "message",

"label": "No",

"text": "no"

}

]

}

}

カルーセルテンプレート

複数のカラムを表示するテンプレートです。カラムは横にスクロールして順番に表示できます。

プロパティタイプ必須説明

type

String

必須

carousel

columns

カラムオブジェクトの配列

必須

カラムの配列

最大カラム数:10

imageAspectRatio

String

任意

画像のアスペクト比。以下のいずれかの値を指定します。

  • rectangle: 1.51:1

  • square: 1:1

すべてのカラムに適用されます。デフォルト値はrectangleです。

imageSize

String

任意

画像の表示形式。以下のいずれかの値を指定します。

  • cover:画像領域全体に画像を表示します。画像領域に収まらない部分は切り詰められます。

  • contain:画像領域に画像全体を表示します。縦長の画像では左右に、横長の画像では上下に余白が表示されます。

すべてのカラムに適用されます。デフォルト値はcoverです。

カルーセルのカラムオブジェクト

プロパティタイプ必須説明

thumbnailImageUrl

String

任意

画像URL(最大文字数:1000)

HTTPS

JPEGまたはPNG

縦横比:1:1.51

最大横幅サイズ:1024px

最大ファイルサイズ:1MB

imageBackgroundColor

String

任意

画像の背景色。RGB値で設定します。デフォルト値は#FFFFFF(白)です。

title

String

任意

タイトル

最大文字数:40

text

String

必須

メッセージテキスト

画像もタイトルも指定しない場合の最大文字数:120

画像またはタイトルを指定する場合の最大文字数:60

defaultAction

アクションオブジェクト

任意

画像、タイトル、テキストの領域全体に対して設定できる、タップされたときのアクション

actions

アクションオブジェクトの配列

必須

タップされたときのアクション

最大件数:3

カルーセルテンプレートメッセージには高さに制限があり、textの表示領域がこの制限を超えると、領域の下部が切り詰められます。このため、メッセージのテキストが最大文字数以内であっても、文字幅によっては完全に表示されない可能性があります。

各カラムのアクションの数は同じにします。画像またはタイトルの有無も、各カラムで統一してください。

カルーセルテンプレートメッセージの例

{

"type": "template",

"altText": "this is a carousel template",

"template": {

"type": "carousel",

"columns": [

{

"thumbnailImageUrl": "https://example.com/bot/images/item1.jpg",

"imageBackgroundColor": "#FFFFFF",

"title": "this is menu",

"text": "description",

"defaultAction": {

"type": "uri",

"label": "View detail",

"uri": "http://example.com/page/123"

},

"actions": [

{

"type": "postback",

"label": "Buy",

"data": "action=buy&itemid=111"

},

{

"type": "postback",

"label": "Add to cart",

"data": "action=add&itemid=111"

},

{

"type": "uri",

"label": "View detail",

"uri": "http://example.com/page/111"

}

]

},

{

"thumbnailImageUrl": "https://example.com/bot/images/item2.jpg",

"imageBackgroundColor": "#000000",

"title": "this is menu",

"text": "description",

"defaultAction": {

"type": "uri",

"label": "View detail",

"uri": "http://example.com/page/222"

},

"actions": [

{

"type": "postback",

"label": "Buy",

"data": "action=buy&itemid=222"

},

{

"type": "postback",

"label": "Add to cart",

"data": "action=add&itemid=222"

},

{

"type": "uri",

"label": "View detail",

"uri": "http://example.com/page/222"

}

]

}

],

"imageAspectRatio": "rectangle",

"imageSize": "cover"

}

}

画像カルーセルテンプレート

複数の画像を表示するテンプレートです。画像は横にスクロールして順番に表示できます。

プロパティタイプ必須説明

type

String

必須

image_carousel

columns

カラムオブジェクトの配列

必須

カラムの配列

最大カラム数:10

画像カルーセルのカラムオブジェクト

プロパティタイプ必須説明

imageUrl

String

必須

画像URL(最大文字数:1000)

HTTPS

JPEGまたはPNG

縦横比:1:1

最大横幅サイズ:1024px

最大ファイルサイズ:1MB

action

アクションオブジェクト

必須

画像がタップされたときのアクション

画像カルーセルテンプレートメッセージの例

{

"type": "template",

"altText": "this is a image carousel template",

"template": {

"type": "image_carousel",

"columns": [

{

"imageUrl": "https://example.com/bot/images/item1.jpg",

"action": {

"type": "postback",

"label": "Buy",

"data": "action=buy&itemid=111"

}

},

{

"imageUrl": "https://example.com/bot/images/item2.jpg",

"action": {

"type": "message",

"label": "Yes",

"text": "yes"

}

},

{

"imageUrl": "https://example.com/bot/images/item3.jpg",

"action": {

"type": "uri",

"label": "View detail",

"uri": "http://example.com/page/222"

}

}

]

}

}

Flex Message

注:Flex MessageはiOS版およびAndroid版のLINE 6.7.0以降で対応しています。

Flex Messageは、複数の要素を組み合わせてレイアウトを自由にカスタマイズできるメッセージです。詳しくは、「Flex Messageを使う」を参照してください。

プロパティタイプ必須説明

type

String

必須

flex

altText

String

必須

代替テキスト

最大文字数:400

contents

Object

必須

Flex Messageのコンテナオブジェクト

コンテナ

コンテナはFlex Messageの最上位の構造です。以下のタイプのコンテナを利用できます。

コンテナのJSONデータのサンプルや用途については、「Flex Messageの要素」を参照してください。

Flex Messageの例

{

"type": "flex",

"altText": "this is a flex message",

"contents": {

"type": "bubble",

"body": {

"type": "box",

"layout": "vertical",

"contents": [

{

"type": "text",

"text": "hello"

},

{

"type": "text",

"text": "world"

}

]

}

}

}

バブルコンテナ

1つのメッセージバブルを構成するコンテナです。ヘッダー、ヒーロー、ボディ、およびフッターの4つのブロックを含めることができます。各ブロックの用途について詳しくは、「ブロック」を参照してください。

プロパティタイプ必須説明

type

String

必須

bubble

direction

String

任意

テキストの書字方向および水平ボックス内のコンポーネントの並び順。以下のいずれかの値を指定します。

  • ltr:左から右

  • rtl:右から左

デフォルト値はltrです。

header

Object

任意

ヘッダーブロック。ボックスコンポーネントを指定します。

hero

Object

任意

ヒーローブロック。画像コンポーネントを指定します。

body

Object

任意

ボディブロック。ボックスコンポーネントを指定します。

footer

Object

任意

フッターブロック。ボックスコンポーネントを指定します。

styles

Object

任意

各ブロックのスタイル。バブルスタイルオブジェクトを指定します。詳しくは、「ブロックのスタイルを定義するオブジェクト」を参照してください。

バブルコンテナの例

{

"type": "bubble",

"header": {

"type": "box",

"layout": "vertical",

"contents": [

{

"type": "text",

"text": "Header text"

}

]

},

"hero": {

"type": "image",

"url": "https://example.com/flex/images/image.jpg",

},

"body": {

"type": "box",

"layout": "vertical",

"contents": [

{

"type": "text",

"text": "Body text",

}

]

},

"footer": {

"type": "box",

"layout": "vertical",

"contents": [

{

"type": "text",

"text": "Footer text",

}

]

},

"styles": {

"comment": "See the example of a bubble style object"

}

}

ブロックのスタイルを定義するオブジェクト

バブル内のブロックのスタイルは、以下の2つのオブジェクトを使って定義します。

バブルスタイル

プロパティタイプ必須説明

header

ブロックスタイルオブジェクト

任意

ヘッダーブロックのスタイル

hero

ブロックスタイルオブジェクト

任意

ヒーローブロックのスタイル

body

ブロックスタイルオブジェクト

任意

ボディブロックのスタイル

footer

ブロックスタイルオブジェクト

任意

フッターブロックのスタイル

ブロックスタイル

プロパティタイプ必須説明

backgroundColor

String

任意

ブロックの背景色。16進数カラーコードで設定します。

separator

Boolean

任意

ブロックの上にセパレータを配置するかどうかを指定します。先頭のブロックの上にはセパレータを配置できないため、trueを設定しても無視されます。デフォルト値はfalseです。

separatorColor

String

任意

セパレータの色。16進数カラーコードで設定します。

バブルスタイルオブジェクトとブロックスタイルオブジェクトの例

"styles": {

"header": {

"backgroundColor": "#00ffff"

},

&quo