LINE設定の流れ
プロダクト
ドキュメント
APIリファレンス
共通仕様
Webhook
Webhookイベントオブジェクト
OAuth
メッセージ
プロフィール
グループ
トークルーム
リッチメニュー
メッセージオブジェクト
アカウント連携
アクションオブジェクト
リッチメニューの構造
Messaging APIリファレンス
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から送信されるHTTP POSTリクエストには、ステータスコード200を返す必要があります。
Webhookから送信されるHTTP POSTリクエストは、失敗しても再送されません。
署名を検証する
X-Line-Signatureリクエストヘッダーに含まれる署名を検証して、リクエストがLINEプラットフォームから送信されたことを確認する必要があります。
検証の手順は以下のとおりです。
チャネルシークレットを秘密鍵として、HMAC-SHA256アルゴリズムを使用してリクエストボディのダイジェスト値を取得します。
ダイジェスト値を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
ポストバックデータ
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-date、time-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
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イベントオブジェクトで返される、userId、groupId、または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
必須
メッセージのテキスト。以下の絵文字を含めることができます。
Unicodeで定義された絵文字
LINEが独自に定義した絵文字。LINE独自の絵文字のUnicodeコードポイント表を参照してください。
最大文字数: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