# ユーザーIDを取得する

Messaging APIで特定のユーザーに対してメッセージを送信したいときには、ユーザーIDを指定します。このページでは、ユーザーIDの取得方法について解説します。

# ユーザーIDとは

ユーザーIDとは、ユーザーの一意な識別子です。ユーザーIDは、LINEで登録されているユーザーの表示名や、LINEでの友だち検索に利用するLINE IDとは異なります。ユーザーIDはLINEプラットフォームが発行する値で、U8189cf6745fc0d808977bdb0b9f22995のように、U[0-9a-f]{32}の正規表現にマッチする文字列です。

表示名やIDとユーザーIDは異なる

ユーザーIDは、同じユーザーであってもプロバイダーごとに異なる値が発行されます。プロバイダーが同じであれば、チャネルの種類(LINEログインチャネルやMessaging APIチャネル)にかかわらず、同じユーザーIDが割り当てられます。

たとえば同じプロバイダーの配下に、Messaging APIチャネルと、LINEログインチャネルがあった場合、それぞれのチャネルで取得したAさんのユーザーIDは同一の値です。しかし、AさんのユーザーIDを異なるプロバイダーの配下にあるチャネルで取得した場合、AさんのユーザーIDはそれぞれのプロバイダーごとに異なる値となります。

# ユーザーIDを取得する

ユーザーIDを取得する方法は4つあります。

  1. 開発者が自分自身のユーザーIDを取得する
  2. Webhookに含まれるユーザーIDを取得する
  3. 友だち全員のユーザーIDを取得する
  4. グループトークや複数人トークのメンバーのユーザーIDを取得する

# 開発者が自分自身のユーザーIDを取得する

開発者が自分自身のユーザーIDを取得したい場合、LINE Developersコンソールのチャネルの[チャネル基本設定]タブにある[あなたのユーザーID]で確認できます。詳しくは、『LINE Developersコンソールドキュメント』の「チャネルの権限」を参照してください。開発者が自分自身のユーザーIDを取得するためのAPIはありません。

# Webhookに含まれるユーザーIDを取得する

ユーザーが、LINE公式アカウントを友だち追加したり、LINE公式アカウントにメッセージを送ったりすると、LINE Developersコンソールの[Webhook URL]で指定したURL(ボットサーバー)に対して、LINEプラットフォームからWebhookが送られます。ユーザーIDは、このWebhookに含まれています。以下のJSONは、LINE公式アカウントを友だち追加したときに送られるWebhookイベントオブジェクトの例です。

{
  "destination": "xxxxxxxxxx",
  "events": [
    {
      "type": "follow",
      "timestamp": 1462629479859,
      "source": {
        // ユーザーIDはsourceオブジェクトのuserIdプロパティから取得できる
        "type": "user",
        "userId": "U8189cf6745fc0d808977bdb0b9f22995"
      },
      "replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
      "mode": "active",
      "webhookEventId": "01FZ74A0TDDPYRVKNK77XKC3ZR",
      "deliveryContext": {
        "isRedelivery": false
      }
    }
  ]
}

ただし、ユーザーがプロフィール情報の取得に同意していない場合、WebhookにユーザーIDは含まれません。詳しくは、「ユーザーのプロフィール情報取得の同意」を参照してください。

# 友だち全員のユーザーIDを取得する

注意

この機能は認証済アカウントまたはプレミアムアカウントのみでご利用いただけます。アカウント種別について詳しくは、『LINEヤフー for Business』の「LINE公式アカウント アカウント種別 (opens new window)」を参照してください。

LINE公式アカウントと友だちになっているユーザー全員のユーザーIDは、LINE公式アカウントを友だち追加したユーザーのリストを取得するエンドポイントで取得できます。

# グループトークや複数人トークのメンバーのユーザーIDを取得する

注意

この機能は認証済アカウントまたはプレミアムアカウントのみでご利用いただけます。アカウント種別について詳しくは、『LINEヤフー for Business』の「LINE公式アカウント アカウント種別 (opens new window)」を参照してください。

LINE公式アカウントが参加しているグループトークや複数人トークのメンバーのユーザーIDは、以下のエンドポイントで取得できます。

# ユーザーIDが有効かを確認する

ユーザーIDを知っていても、そのユーザーIDが有効でなければ、ユーザーIDを指定してメッセージを送ることはできません。

ユーザーIDが有効かを確認するには、プロフィール情報を取得するエンドポイントを使用してください。ユーザーIDが有効な場合は、HTTPステータスコード200が返ります。200以外が返ってきた場合、そのユーザーIDは無効のため、メッセージは送信できません。

ユーザーIDが有効ではない場合の理由について詳しくは、「ユーザーのプロフィール情報取得の同意」を参照してください。