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 必須 チャネルシークレット。コンソールで確認できます。

リクエストの例

curl -v -X POST https://api.line.me/oauth2/v2.1/token \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'grant_type=authorization_code' \
-d 'code=xxx' \
-d 'redirect_uri=xxx' \
-d 'client_id=xxx' \
-d 'client_secret=xxx'
// No sample code available
# No sample code available
// No sample code available
// No sample code available
# No sample code available
# No sample code available
// No sample code available

レスポンス

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

プロパティ タイプ 説明
access_token String アクセストークン。有効期間は30日です。
expires_in Number アクセストークンの有効期限が切れるまでの秒数
id_token String ユーザー情報を含むJSONウェブトークン(JWT)。このプロパティは、スコープにopenidを指定した場合にのみ返されます。IDトークンについて詳しくは、「IDトークンからプロフィール情報とメールアドレスを取得する」を参照してください。
refresh_token String 新しいアクセストークンを取得するためのトークン。アクセストークンの有効期限が切れてから最長10日間有効です。
scope String ユーザーが付与する権限。詳しくは、「スコープ」を参照してください。
token_type String Bearer

レスポンスの例

{
    "access_token": "bNl4YEFPI/hjFWhTqexp4MuEw5YPs...",
    "expires_in": 2592000,
    "id_token": "eyJhbGciOiJIUzI1NiJ9...",
    "refresh_token": "Aa1FdeggRhTnPNNpxr8p",
    "scope": "profile",
    "token_type": "Bearer"
}

アクセストークンを検証する

アクセストークンを検証します。

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

HTTPリクエスト

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

URLパラメータ

パラメータ 必須 説明
access_token 必須 アクセストークン

リクエストの例

curl -v -X GET \
'https://api.line.me/oauth2/v2.1/verify?access_token=eyJhbGciOiJIUzI1NiJ9.UnQ_o-GP0VtnwDjbK0C8E_NvK...'
// No sample code available
# No sample code available
// No sample code available
// No sample code available
# No sample code available
# No sample code available
// No sample code available

レスポンス

プロパティ タイプ 説明
scope String アクセストークンを介して付与される権限
client_id String アクセストークンを発行する対象のチャネルID
expires_in Number アクセストークンの有効期限。APIが呼び出された時点から期限切れまでの残り秒数で表されます。

レスポンスの例

{
   "scope":"profile",
   "client_id":"1440057261",
   "expires_in":2591659
}

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

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

注:このセクションでは、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 必須 リフレッシュトークン。アクセストークンの有効期限が切れてから最長10日間有効です。リフレッシュトークンの有効期限が切れた場合はユーザーに再ログインさせる必要があります。
client_id String 必須 チャネルID。コンソールで確認できます。
client_secret String 任意 チャネルシークレット。コンソールで確認できます。注:アプリタイプが「ウェブアプリ」のチャネルを介してアクセストークンが発行された場合は必須です。

リクエストの例

curl -v -X POST https://api.line.me/oauth2/v2.1/token \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'grant_type=refresh_token&refresh_token={your_refresh_token}&client_id={your_channel_id}&client_secret={your_channel_secret}'
// No sample code available
# No sample code available
// No sample code available
// No sample code available
# No sample code available
# No sample code available
// No sample code available

レスポンス

プロパティ タイプ 説明
access_token String アクセストークン。有効期間は30日です。
token_type String Bearer
refresh_token String 新しいアクセストークンを取得するためのトークン。アクセストークンの有効期限が切れてから最長10日間有効です。
expires_in Number アクセストークンの有効期限。APIが呼び出された時点から期限切れまでの残り秒数で表されます。
scope String アクセストークンを介して付与される権限

レスポンスの例

{
   "token_type":"Bearer",
   "scope":"profile",
   "access_token":"bNl4YEFPI/hjFWhTqexp4MuEw...",
   "expires_in":2591977,
   "refresh_token":"8iFFRdyxNVNLWYeteMMJ"
}

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

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

注:このセクションでは、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と空のレスポンスボディを返します。

リクエストの例

curl -v -X POST https://api.line.me/oauth2/v2.1/revoke \
-H "Content-Type:application/x-www-form-urlencoded" \
-d "client_id={channel id}&client_secret={channel secret}&access_token={access token}"
// No sample code available
# No sample code available
// No sample code available
// No sample code available
# No sample code available
# No sample code available
// No sample code available

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を取得する方法は、「ユーザープロフィールを取得する」を参照してください。

リクエストの例

curl -v -X POST 'https://api.line.me/oauth2/v2.1/verify' \
 -d 'id_token=eyJraWQiOiIxNmUwNGQ0ZTU2NzgzYTc5MmRjYjQ2ODRkOD...'
// No sample code available
# No sample code available
// No sample code available
// No sample code available
# No sample code available
# No sample code available
// No sample code available

レスポンス

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オブジェクトが返されます。

レスポンスの例

{
    "iss": "https://access.line.me",
    "sub": "U1234567890abcdef1234567890abcdef",
    "aud": "1234567890",
    "exp": 1504169092,
    "iat": 1504263657,
    "nonce": "0987654asdf",
    "amr": [
        "pwd",
        "linesso",
        "lineqr"
    ],
    "name": "Taro Line",
    "picture": "https://sample_line.me/aBcdefg123456",
    "email": "taro.line@example.com"
}
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と異なります。
{
    "error": "invalid_request",
    "error_description": "access_token invalid"
}

プロフィール

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

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

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

HTTPリクエスト

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

リクエストヘッダー

リクエストヘッダー 説明
Authorization Bearer {access token}

リクエストの例

curl -v -X GET https://api.line.me/v2/profile \
-H 'Authorization: Bearer {access token}'
// No sample code available
# No sample code available
// No sample code available
// No sample code available
# No sample code available
# No sample code available
// No sample code available

レスポンス

プロパティ タイプ 説明
displayName String ユーザーの表示名
userId String ユーザーID
pictureUrl String プロフィール画像のURL。スキームはhttpsです。ユーザーがプロフィール画像を設定していない場合はレスポンスに含まれません。
statusMessage String ユーザーのステータスメッセージ。ユーザーがステータスメッセージを設定していない場合はレスポンスに含まれません。

レスポンスの例

{
  "userId":"U4af4980629...",
  "displayName":"Brown",
  "pictureUrl":"https://example.com/abcdefghijklmn",
  "statusMessage":"Hello, LINE!"
}

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

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

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

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

https://obs.line-apps.com/abcdefghijklmn/large

友だち関係

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

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

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

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

HTTPリクエスト

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

リクエストヘッダー

リクエストヘッダー 説明
Authorization Bearer {access token}

リクエストの例

curl -v -X GET https://api.line.me/friendship/v1/status \
-H 'Authorization: Bearer {access token}' \ 
// No sample code available
# No sample code available
// No sample code available
// No sample code available
# No sample code available
# No sample code available
// No sample code available

レスポンス

プロパティ タイプ 説明
friendFlag Boolean ユーザーがLINE公式アカウントを友だち追加済みで、ブロックしていない場合はtrueです。そうでなければfalseです。

レスポンスの例

{
  "friendFlag": true
}

エラー

ステータスコード

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

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

{{ $t("form.question.helpful") }}

{{ $t("form.question.detail") }}

{{ $t("form.question.improve") }}

{{ $t("form.info.start") }}{{ $t("form.info.link") }}{{ $t("form.info.end") }}


{{ $t("form.result.success") }}
{{ $t("form.result.error") }}
{{ $t("form.result.errorLink") }}