# 法人ユーザー向けオプションAPIリファレンス
本ドキュメントに記載の機能は、所定の申請等を行った法人ユーザーのみがご利用いただけます。自社のLINE公式アカウントでご利用になりたいお客様は、担当営業までご連絡いただくか、弊社パートナー (opens new window)にお問い合わせください。
# 共通仕様
# ステータスコード
『Messaging APIリファレンス』の「ステータスコード」を参照してください。
# レスポンスヘッダー
法人ユーザー向けオプションAPIのレスポンスには、以下のHTTPヘッダーが含まれます。
レスポンスヘッダー | 説明 |
---|---|
x-line-request-id | リクエストID。各リクエストごとに発行されるIDです。 |
# ミッションスタンプAPI
ミッションスタンプは、ミッションの達成を条件としてユーザーに提供するスタンプです。スタンプをインセンティブに、ユーザーに「ID情報の連携」や「会員登録」、「アンケート回答」などを促すことができます。
# ミッションスタンプを送る(v3)
ユーザーに、任意のタイミングでミッションスタンプを送信します。
# 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。
# レスポンス
# エラーレスポンス
# LINE通知メッセージAPI
# LINE通知メッセージが送信される条件
以下の条件をすべて満たす場合に、ユーザーに対してメッセージが送信されます。
- LINE通知メッセージの送信対象として指定した電話番号が、ユーザーがLINEに登録している電話番号と一致していること
- ユーザーがLINEに登録している電話番号が有効であること(SMSによる電話番号認証を、一定期間内に一度実施している)
- ユーザーがLINE通知メッセージの受信に同意していること
- ユーザーがLINE通知メッセージ送信元であるLINE公式アカウントをブロックしていないこと
- LINE通知メッセージの送信対象として指定した電話番号が、日本、タイ、台湾で発行された電話番号かつ、LINEアプリにおいて電話番号による認証を行うことができる電話番号 (opens new window)であること
- ユーザーが「LINEのプライバシーポリシー(2022年3月改訂) (opens new window)」に同意していること
LINEアプリでのLINE通知メッセージの設定について詳しくは、『LINEみんなの使い方ガイド』の「LINE通知メッセージを受信する方法 (opens new window)」を参照してください。
# LINE通知メッセージを送る
ユーザーの電話番号を指定してLINE通知メッセージを送るAPIです。
LINE通知メッセージを送る場合、Messaging APIチャネルの[セキュリティ設定]タブで、LINEプラットフォームのAPIを呼び出せるサーバーのIPアドレスを登録しないでください。リクエスト元のIPアドレスを制限した状態でLINE通知メッセージを送ると、送信に失敗することがあります。設定方法について詳しくは、「長期のチャネルアクセストークン利用時にAPIの呼び出し元を制限する(任意)」を参照してください。
リクエストの例
curl -v -X POST https://api.line.me/bot/pnp/push \
-H 'Authorization: Bearer {channel_access_token}' \
-H 'Content-Type:application/json' \
-d '{
"to": "{hashed_phone_number}",
"messages":[
{
"type":"text",
"text":"Hello, world1"
},
{
"type":"text",
"text":"Hello, world2"
}
]
}'
#リクエストの例(X-Line-Delivery-Tagあり)
curl -v -X POST https://api.line.me/bot/pnp/push \
-H 'Authorization: Bearer {channel_access_token}' \
-H 'Content-Type:application/json' \
-H 'X-Line-Delivery-Tag:{delivery_tag}' \
-d '{
"to": "{hashed_phone_number}",
"messages":[
{
"type":"text",
"text":"Hello, world1"
},
{
"type":"text",
"text":"Hello, world2"
}
]
}'
# HTTPリクエスト
POST https://api.line.me/bot/pnp/push
# レート制限
2,000リクエスト/秒
# リクエストヘッダー
LINE通知メッセージAPIでは、リトライキー(X-Line-Retry-Key
)を使ったAPIリクエストの再試行はできません。
Content-Type
application/json
Authorization
Bearer {channel access token}
X-Line-Delivery-Tag
Webhookを介して、配信完了イベントのdelivery.data
プロパティで返される文字列。詳しくは、「メッセージの送信通知を受信する」を参照してください。
最小文字数:16
最大文字数:100
# リクエストボディ
to
メッセージの送信先。E.164形式に正規化しSHA256でハッシュ化した電話番号を指定してください。
メッセージの送信条件について詳しくは、「LINE通知メッセージが送信される条件」を参照してください。
- グループトークと複数人トークは送信対象として指定できません。
- 複数の電話番号を送信対象として指定することはできません。
messages
メッセージオブジェクトの配列
送信するメッセージ。最大件数:5
詳しくは、「LINE通知メッセージAPIで送信可能なメッセージ」を参照してください。
# レスポンス
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | リクエストに問題があります。次のような理由が考えられます。
|
422 | LINE通知メッセージの送信に失敗しました。以下のような理由が考えられます。
|
詳しくは、『Messaging APIリファレンス』の「ステータスコード」および「エラーレスポンス」を参照してください。
# 送信済みのLINE通知メッセージの数を取得する
/bot/pnp/push
エンドポイントを使って送信された、LINE通知メッセージの数を取得します。
詳しくは、LINE通知メッセージドキュメントの「送信済みLINE通知メッセージの数を取得する」を参照してください。
# HTTPリクエスト
GET https://api.line.me/v2/bot/message/delivery/pnp
# レート制限
2,000リクエスト/秒
# リクエストヘッダー
Authorization
Bearer {channel access token}
# クエリパラメータ
date
メッセージが送信された日付
- フォーマット:
yyyyMMdd
(例:20211231
) - タイムゾーン:UTC+9
# レスポンス
ステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
status
String
集計処理の状態。以下のいずれかの値です。
ready
:メッセージ数を取得できます。unready
:date
に指定した日付のメッセージ数の集計がまだ完了していません。しばらくしてからリクエストを再実行してください。通常、集計処理は翌日中に完了します。out_of_service
:date
に指定した日付が、集計システムの稼働開始日(2018年3月31日)より前です。
success
Number
date
に指定した日付に、LINE通知メッセージAPIを使って送信されたメッセージの数。status
の値がready
の場合にのみ、レスポンスに含まれます。
# エラーレスポンス
# モジュール
# モジュールチャネルの提供者の操作で連携(アタッチ)する
モジュールチャネルをLINE公式アカウントにアタッチします。アタッチするためには、LINE公式アカウントの管理者に認可を要求し、認可コードを取得する必要があります。モジュールの認可フローについて詳しくは、『モジュールドキュメント』の「モジュールチャネルを連携(アタッチ)する」を参照してください。
このAPIを利用する際には、Authorization
ヘッダーもしくはリクエストボディのどちらかを使って、モジュールチャネルのチャネルIDとチャネルシークレットを指定する必要があります。
リクエストの例
curl -v -X POST https://manager.line.biz/module/auth/v1/token \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'grant_type=authorization_code' \
-d 'code=1234567890abcde' \
--data-urlencode 'redirect_uri=https://example.com/auth?key=value' \
-d 'code_verifier=ayjtZgTunh96nHCvgLEiXzqVQOOC0SwMRs39bh1l5dx' \
-d 'client_id=1234567890' \
-d 'client_secret=1234567890abcdefghij1234567890ab' \
-d 'region=JP' \
-d 'basic_search_id=@linedevelopers' \
-d 'scope=message%3Asend%20message%3Areceive' \
-d 'brand_type=premium'
# HTTPリクエスト
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
認証と認可のためのURLでregion
に値を指定した場合、同じ値を指定してください。
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 APIやAcquire Control APIを呼び出す際に利用します。
ボットのユーザーIDは、LINE Developersコンソールで、Messaging APIチャネルの[チャネル基本設定]タブに表示される[あなたのユーザーID]ではありません。
scope
String
LINE公式アカウントの管理者によって許可された権限(スコープ)。
# エラーレスポンス
以下のHTTPステータスコードを返します。
400 Bad Request
403 Forbidden
# モジュールチャネルの管理者の操作でモジュールチャネルを連携解除(デタッチ)する
LINE公式アカウントからモジュールチャネルをデタッチします。
# HTTPリクエスト
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
を返します。
# エラーレスポンス
# 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
userId
、roomId
、または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)を取得できませんでした。次のような理由が考えられます。
|
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
userId
、roomId
、またはgroupId
# レスポンス
成功時は、ステータスコード200
を返します。
# エラーレスポンス
# モジュールチャネル専用のWebhookイベントオブジェクト
# Attachedイベント
モジュールチャネルが、LINE公式アカウントにアタッチされたことを示すイベントです。モジュールチャネルのWebhook URLサーバーに送信されます。
timestampなど
「共通プロパティ」を参照してください。
ただし、mode
はactive
固定です。
type
String
module
module.type
String
attached
module.botId
String
アタッチされたLINE公式アカウントのボットのユーザーID
module.scopes
Array of strings
LINE公式アカウントの管理者によって許可されたスコープを示す文字列の配列です。
Attachedイベントの例
{
"destination": "U53387d54817...",
"events": [
{
"type": "module",
"module": {
"type": "attached",
"botId": "U53387d54817...",
"scopes": [
"message:send",
"message:receive"
]
},
"webhookEventId": "01G3GCEEXNWREGSSFVTPYH8465",
"deliveryContext": {
"isRedelivery": false
},
"timestamp": 1653038594997,
"mode": "active"
}
]
}
# Detachedイベント
モジュールチャネルが、LINE公式アカウントからデタッチされたことを示すイベントです。モジュールチャネルのWebhook URLサーバーに送信されます。
LINE Official Account ManagerでLINE公式アカウントを削除する操作をしたときは、モジュールチャネルはデタッチされません。
削除する操作をしてから3か月が経過し、LINE公式アカウントの分析データを含むすべての情報が完全に削除されると、自動的にデタッチされます。
timestampなど
「共通プロパティ」を参照してください。
ただし、mode
はactive
固定です。
type
String
module
module.type
String
detached
module.botId
String
連携解除されたLINE公式アカウントのボットのユーザーID
module.reason
String
連携解除された理由
bot_deleted
:LINE公式アカウントの分析データを含むすべての情報が完全に削除されました。
Detachedイベントの例
{
"destination": "U5fac33f633e72c192759f09afc41fa28",
"events": [
{
"type": "module",
"module": {
"type": "detached",
"botId": "U5fac33f633e72c192759f09afc41fa28"
},
"webhookEventId": "01G4CPSV08QGNT1DWFC4DSWDNP",
"deliveryContext": {
"isRedelivery": false
},
"timestamp": 1653988977672,
"mode": "active"
}
]
}
# Activatedイベント
Acquire Control APIを呼び出して、モジュールチャネルがActive Channelに切り替わったことを示すイベントです。モジュールチャネルのWebhook URLサーバーに送信されます。
Acquire Control APIで指定した有効期間が過ぎて、主導権(Chat Control)が切り替わった場合は、Activatedイベントは送信されません。
timestamp、sourceなど
「共通プロパティ」を参照してください。
ただし、mode
はactive
固定です。
type
String
activated
chatControl.expireAt
Number
“active”が維持される期限。
Activatedイベントの例
{
"destination": "U5fac33f633e72c192759f09afc41fa28",
"events": [
{
"type": "activated",
"chatControl": {
"expireAt": 1653994422933
},
"webhookEventId": "01G4CRJ54J7TT4WN190KKHBXXT",
"deliveryContext": {
"isRedelivery": false
},
"timestamp": 1653990823058,
"source": {
"type": "user",
"userId": "LUb577ef3cbe..."
},
"mode": "active"
}
]
}
# Deactivatedイベント
Acquire Control APIまたはRelease Control APIを呼び出して、モジュールチャネルがStandby Channelに切り替わったことを示すイベントです。モジュールチャネルのWebhook URLサーバーに送信されます。
Acquire Control APIで指定した有効期間が過ぎて、主導権(Chat Control)が切り替わった場合は、Deactivatedイベントは送信されません。
timestamp、sourceなど
「共通プロパティ」を参照してください。
ただし、mode
はactive
固定です。
type
String
deactivated
Deactivatedイベントの例
# botSuspendイベント
LINE公式アカウントが一時停止状態(Suspend)になったことを示すイベントです。モジュールチャネルのWebhook URLサーバーに送信されます。
このイベントを受信したときは、以下のような処理を行うことを推奨します。
- モジュールチャネルの管理画面に「LINE公式アカウントが利用できない状態になっているため、この管理画面は利用できません」といったメッセージを表示し、管理画面の利用を停止する。
- いったん一時停止状態になっても、一時停止状態から復帰する可能性(botResumeイベントを受信する可能性)があります。すべての情報を保持しておくことを推奨します。
Primary ChannelにはbotSuspendイベントは送信されません。
botSuspendイベントを受信したあとでDetachedイベントを受信した場合は、LINE公式アカウントがモジュールチャネルの利用を停止し、契約を解除したことを示します。
timestampなど
「共通プロパティ」を参照してください。
ただし、mode
はactive
固定です。
type
String
botSuspended
# botResumedイベント
LINE公式アカウントが一時停止状態から復帰したことを示すイベントです。モジュールチャネルのWebhook URLサーバーに送信されます。
このイベントを受信したときは、モジュールチャネルの管理画面で「LINE公式アカウントが利用できない状態になっているため、この管理画面は利用できません」といったメッセージを非表示にし、管理画面の利用を再開することを推奨します。
Primary ChannelにはbotResumedイベントは送信されません。
timestampなど
「共通プロパティ」を参照してください。
ただし、mode
はactive
固定です。
type
String
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秒間)です。
レスポンスの例
{
"bots": [
{
"userId": "Uf2dd6e8b081d2ff9c05c98a8a8b269c9",
"basicId": "@628...",
"displayName": "Test01",
"pictureUrl": "https://profile.line-scdn.net/0hyxytJNAlJldEDQzlatVZAHhIKDoz..."
},
{
"userId": "Ua831d37bfe8232808202b85127663f70",
"basicId": "@076lu...",
"displayName": "Test02",
"pictureUrl": "https://profile.line-scdn.net/0hohnizdyzMEdTECbnVo9PEG9VPiok..."
},
{
"userId": "Ub77ea431fba86f7c159a0c0f5be43d9f",
"basicId": "@290n...",
"displayName": "Test03"
},
{
"userId": "Ub8ec80a14e879e9c6833fb4cee0e632b",
"basicId": "@793j...",
"displayName": "Test04"
}
]
}
# エラーレスポンス
# クイック入力
クイック入力とは、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
が渡されます。
# 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に応じて取得できるダミーデータについては、「取得できる共通プロフィールのダミーデータ」を参照してください。
例
{
"family-name": "見本田",
"given-name": "見本夫",
"family-name-kana": "ダミータ",
"given-name-kana": "ダミーオ",
"sex-enum": 0,
"bday-day": 12,
"bday-month": 3,
"bday-year": 1998,
"tel": "09001234567",
"email": "dummy_39@yahoo.co.jp",
"postal-code": "1020094",
"address-level1": "東京都",
"address-level2": "千代田区",
"address-level3": "紀尾井町1-2",
"address-level4": "東京ガーデンテラス紀尾井町"
}
# エラーレスポンス
Promise
がrejectされたときは、LiffError
が渡されます。
# liff.$commonProfile.fill()
取得した共通プロフィールの情報をフォームに自動入力します。それぞれのプロフィール情報とフォームの紐づけには、data-liff-autocomplete
属性を用います。
liff.$commonProfile.fill()
による自動入力は、フォームのdata-liff-autocomplete
属性を用いて行います。このとき、フォームのdata-liff-autocomplete
属性に指定する値は、取得したプロフィール情報のスコープ(family-name
、tel
、bday-year
など)と一致している必要があります。
たとえば、誕生年(bday-year
)、誕生月(bday-month
)、誕生日(bday-day
)の情報をそれぞれ取得した後、20110623
のような形式に加工した上でフォームに自動入力させたい場合は、liff.$commonProfile.fill()
の代わりに、document.getElementById().value
やdocument.querySelector().value
を用いることができます。
取得した姓、電話番号、性別をそのまま自動入力する例
// HTML
<input type="text" data-liff-autocomplete="family-name" />
<input type="tel" data-liff-autocomplete="tel" />
<select data-liff-autocomplete="sex-enum">
<option value="0">男性</option>
<option value="1">女性</option>
<option value="2">その他</option>
<option value="3">無回答</option>
</select>
// JavaScript
const profile = await liff.$commonProfile.get([
"family-name",
"tel",
"sex-enum",
]);
liff.$commonProfile.fill(profile);
取得した共通プロフィール情報の形式を一部変更して自動入力する場合
// HTML
<input type="text" data-liff-autocomplete="bday-year" />
<input type="text" data-liff-autocomplete="bday-month" />
<input type="text" data-liff-autocomplete="bday-day" />
// JavaScript
const profile = await liff.$commonProfile.get([
"bday-year",
"bday-month",
"bday-day",
]);
const year = profile["bday-year"];
const month = profile["bday-month"];
const day = profile["bday-day"];
// 月と日が1桁の場合、2桁になるように0埋めする
const formattedMonth = month.toString().padStart(2, '0');
const formattedDay = day.toString().padStart(2, '0');
// 加工後の値を自動入力
liff.$commonProfile.fill({
"bday-year": year,
"bday-month": formattedMonth,
"bday-day": formattedDay,
});
# 構文
liff.$commonProfile.fill(profile);
# 引数
profile
Partial<CommonProfile>
フォームに自動入力させるプロフィール情報を、Partial<CommonProfile>
型で指定します。
指定できるスコープについては、「取得できる共通プロフィールのスコープと戻り値」を参照してください。
# 戻り値
なし