# Social API v2.1リファレンス

# OAuth

# アクセストークンを発行する

アクセストークンを発行します。

リクエストの例

# HTTPリクエスト

POST https://api.line.me/oauth2/v2.1/token

# リクエストヘッダー

Content-Type

application/x-www-form-urlencoded

# リクエストボディ

grant_type

String

必須

authorization_code。付与タイプを指定します。

code

String

必須

認可コード。認可リクエストに対して返されるコードです。

redirect_uri

String

必須

コールバックURL。

client_id

String

必須

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

client_secret

String

必須

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

# レスポンス

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

access_token

String

アクセストークン。有効期間は30日です。

expires_in

Number

アクセストークンの有効期限が切れるまでの秒数

id_token

String

ユーザー情報を含むJSONウェブトークン(JWT)。このプロパティは、スコープにopenidを指定した場合にのみ返されます。IDトークンについて詳しくは、「IDトークンからプロフィール情報とメールアドレスを取得する」を参照してください。

refresh_token

String

新しいアクセストークンを取得するためのトークン。アクセストークンが発行されてから最長90日間有効です。

scope

String

ユーザーが付与する権限。詳しくは、「スコープ」を参照してください。

token_type

String

Bearer

レスポンスの例

# アクセストークンの有効性を検証する

アクセストークンの有効性を検証します。

アクセストークンを利用して、安全にユーザー登録およびログインを処理する方法については、「アプリとサーバーの間で安全なログインプロセスを構築する」を参照してください。

注意

このセクションでは、v2.1のエンドポイントについて解説します。V2については、v2の「Verify access token」を参照してください。

リクエストの例

# HTTPリクエスト

GET https://api.line.me/oauth2/v2.1/verify

# URLパラメータ

access_token

必須

アクセストークン

# レスポンス

アクセストークンが有効である場合は、HTTPステータスコード 200 OK と、以下の情報を含むJSONオブジェクトが返されます。

scope

String

アクセストークンを介して付与される権限

client_id

String

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

expires_in

Number

アクセストークンの有効期限。APIが呼び出された時点から期限切れまでの残り秒数で表されます。

レスポンスの例

# エラーレスポンス

アクセストークンの有効期限が切れている場合は、HTTPステータスコード 400 Bad Request と、JSONオブジェクトが返されます。

エラーレスポンスの例

# アクセストークンを更新する

リフレッシュトークンを使って新しいアクセストークンを取得します。リフレッシュトークンは、ユーザーがアプリを承認したときにアクセストークンと共に返されます。

注意

このセクションでは、v2.1のエンドポイントについて解説します。V2については、v2の「Refresh access token」を参照してください。

リクエストの例

注意

Messaging APIで使用されるチャネルアクセストークンの更新には使用できません。

# HTTPリクエスト

POST https://api.line.me/oauth2/v2.1/token

# リクエストヘッダー

Content-Type

application/x-www-form-urlencoded

# リクエストボディ

grant_type

String

必須

refresh_token

refresh_token

String

必須

リフレッシュトークン。アクセストークンが発行されてから最長90日間有効です。リフレッシュトークンの有効期限が切れた場合はユーザーに再ログインさせる必要があります。

client_id

String

必須

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

client_secret

String

任意

チャネルシークレット。コンソールで確認できます。注:アプリタイプが「ウェブアプリ」のチャネルを介してアクセストークンが発行された場合は必須です。

# レスポンス

アクセストークンの更新が成功すると、新しいアクセストークンとリフレッシュトークンが返されます。

access_token

String

アクセストークン。有効期間は30日です。

token_type

String

Bearer

refresh_token

String

新しいアクセストークンを取得するためのトークン。アクセストークンが発行されてから最長90日間有効です。

expires_in

Number

アクセストークンの有効期限。APIが呼び出された時点から期限切れまでの残り秒数で表されます。

scope

String

アクセストークンを介して付与される権限

レスポンスの例

# エラーレスポンス

リフレッシュトークンの有効期限が切れている場合は、HTTPステータスコード 400 Bad Request と、JSONオブジェクトが返されます。

エラーレスポンスの例

# アクセストークンを取り消す

ユーザーのアクセストークンを無効にします。

注意

このセクションでは、v2.1のエンドポイントについて解説します。V2については、v2の「Revoke access token」を参照してください。

リクエストの例

注意

Messaging APIで使用されるチャネルアクセストークンの無効化には使用できません。

# HTTPリクエスト

POST https://api.line.me/oauth2/v2.1/revoke

# リクエストヘッダー

Content-Type

application/x-www-form-urlencoded

# リクエストボディ

access_token

String

必須

アクセストークン。

client_id

String

必須

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

client_secret

String

必須

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

# レスポンス

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

# IDトークンを検証する

IDトークンは、ユーザー情報を含むJSONウェブトークン(JWT)です。受信したIDトークンは、なりすましを狙った攻撃者が発行している可能性があります。受信したIDトークンが正規のものであることを確認し、ユーザーのプロフィール情報とメールアドレスを取得します。

リクエストの例

# HTTPリクエスト

POST https://api.line.me/oauth2/v2.1/verify

# リクエストボディ

id_token

String

必須

IDトークン

client_id

String

必須

期待されるチャネルID。LINEが発行した、チャネル固有の識別子。LINE Developersコンソールで確認できます。

nonce

String

任意

期待されるnonceの値。認可リクエストに指定したnonceの値を指定します。認可リクエストでnonceの値を指定しなかった場合は省略します。

user_id

String

任意

期待されるユーザーID。ユーザーIDを取得する方法は、「ユーザープロフィールを取得する」を参照してください。

# レスポンス

IDトークンの検証に成功した場合は、IDトークンのペイロード部分が返されます。

iss

String

IDトークンの生成URL

sub

String

IDトークンの対象ユーザーID

aud

String

チャネルID

exp

Number

トークンの有効期限。UNIXタイムです。

iat

Number

IDトークンの生成時間。UNIXタイムです。

auth_time

Number

ユーザー認証時間。UNIXタイムです。認可リクエストにmax_ageの値を指定しなかった場合は含まれません。

nonce

String

認可URLに指定したnonceの値。認可リクエストにnonceの値を指定しなかった場合は含まれません。

amr

Stringの配列

ユーザーが使用した認証方法のリスト。以下のいずれかの値が含まれます。

  • pwd:メールアドレスとパスワードによるログイン
  • lineautologin:LINEによる自動ログイン(LINE SDKを使用した場合も含む)
  • lineqr:QRコードによるログイン
  • linesso:シングルサインオンによるログイン

name

String

ユーザーの表示名。認可リクエストにprofileスコープを指定しなかった場合は含まれません。

picture

String

ユーザープロフィールの画像URL。認可リクエストにprofileスコープを指定しなかった場合は含まれません。

email

String

ユーザーのメールアドレス。認可リクエストにemailスコープを指定しなかった場合は含まれません。

レスポンスの例

# エラーレスポンス

IDトークンの検証に失敗した場合は、以下のJSONオブジェクトが返されます。

{
    "error": "invalid_request",
    "error_description": "Invalid IdToken."
}
error_description 説明
Invalid IdToken. IDトークンの形式が正しくないか、署名が無効です。
Invalid IdToken Issuer. IDトークンが "https://access.line.me" 以外のサイトで生成されました。
IdToken expired. IDトークンの有効期限が切れました。
Invalid IdToken Audience. IDトークンのAudienceが、リクエストで指定したclient_idと異なります。
Invalid IdToken Nonce. IDトークンのNonceが、リクエストで指定したnonceと異なります。
Invalid IdToken Subject Identifier. IDトークンのSubjectIdentifierは、リクエストで指定したuser_idと異なります。

# プロフィール

# ユーザープロフィールを取得する

ユーザーの表示名、プロフィール画像、およびステータスメッセージを取得します。

注意

profileのスコープを持つアクセストークンが必要です。詳しくは、『LINEログインドキュメント』の「認可を要求する」と「スコープ」を参照してください。

リクエストの例

# HTTPリクエスト

GET https://api.line.me/v2/profile

# リクエストヘッダー

Authorization

Bearer {access token}

# レスポンス

displayName

String

ユーザーの表示名

userId

String

ユーザーID

pictureUrl

String

プロフィール画像のURL。スキームはhttpsです。ユーザーがプロフィール画像を設定していない場合はレスポンスに含まれません。

statusMessage

String

ユーザーのステータスメッセージ。ユーザーがステータスメッセージを設定していない場合はレスポンスに含まれません。

レスポンスの例

# プロフィール画像のサムネイル

ユーザープロフィールの画像サイズは、URLにサフィックスを付加することによって変更できます。

画像サイズ サフィックス
200 x 200 /large
51 x 51 /small

プロフィール画像のURLの例

# 友だち関係

# LINE公式アカウントとの友だち関係を取得する

LINEログインのチャネルにリンクされているLINE公式アカウントとユーザーの友だち関係を取得します。

注意

profileのスコープを持つアクセストークンが必要です。詳しくは、『LINEログインドキュメント』の「認可を要求する」と「スコープ」を参照してください。

注意

チャネルにリンクされているLINE公式アカウントが必要です。詳しくは、『LINEログインドキュメント』の「LINE公式アカウントをLINEログインのチャネルにリンクする」を参照してください。

リクエストの例

# HTTPリクエスト

GET https://api.line.me/friendship/v1/status

# リクエストヘッダー

Authorization

Bearer {access token}

# レスポンス

friendFlag

Boolean

  • true:ユーザーがLINE公式アカウントを友だち追加済みで、ブロックしていない。
  • false:それ以外の場合。

レスポンスの例

# エラー

# ステータスコード

APIコールの後で、以下のHTTPステータスコードが返されます。

ステータスコード 説明
200 OK リクエストが成功しました。
400 Bad Request リクエストに問題があります。リクエストパラメータとJSONの形式を確認してください。
401 Unauthorized Authorizationヘッダーを正しく送信していることを確認してください。
403 Forbidden APIを使用する権限がありません。ご契約中のプランやアカウントに付与されている権限を確認してください。
429 Too Many Requests リクエスト頻度をレート制限内に抑えてください。
500 Internal Server Error APIサーバーの一時的なエラーです。