ボットをLINEログインのチャネルにリンクする

Messaging APIを使って開発したボットをLINEログインのチャネルにリンクしておくと、ウェブアプリにユーザーがログインするときに、以下のようなボットを友だち追加するオプションが表示されます。

ユーザーがこのオプションのチェックボックスをオンにしてログインすると、ボットがユーザーの友だちとして追加されます。

同意画面

ボットについて詳しくは、「Messaging API」を参照してください。

要件

ボットを友だち追加するオプションを有効にするには、以下の要件を満たす必要があります。

  • LINEログインのバージョンが2.1以降であること。
  • LINEログインチャネルのアプリタイプがWEBであること。
  • 同じプロバイダーが持つMessaging APIチャネルに関連づけられているボットが1つ以上存在すること。

ボットを友だち追加するオプションを表示するには

ボットをチャネルにリンクするには、コンソールでボットをチャネルにリンクしたうえで、LINEログインの認可URLにbot_promptクエリパラメータを付けてユーザーをリダイレクトします。

コンソールでボットをチャネルにリンクする

  1. チャネルの管理者権限を持つアカウントでコンソールにログインします。

    [Channel基本設定]ページの[このチャネルにリンクされたボット]に、同じプロバイダーが持つMessaging APIチャネルに関連づけられているボットが一覧表示されます。

  2. ユーザーに友だち追加させたいボットを選択して[更新]をクリックします。

    1つのチャネルにリンクできるボットは1つです。

LINEログインの認可URLにユーザーをリダイレクトする

以下に示すように、LINEログインの認可URLにbot_promptクエリパラメータを付けてユーザーをリダイレクトします。認可URLへのユーザーのリダイレクトについて詳しくは、「認可を要求する」を参照してください。

https://access.line.me/oauth2/v2.1/authorize?response_type=code&client_id={CHANNEL_ID}&redirect_uri={CALLBACK_URL}&state={STATE}&bot_prompt={BOT_PROMPT}&scope={SCOPE_LIST}


bot_promptクエリパラメータに以下の値のいずれかを設定します。

説明
normal アプリの利用条件の同意画面に、ボットを友だち追加するオプションを追加します。
aggressive アプリの利用条件の同意画面の後に、ボットを友だち追加するかどうか確認する画面を開きます。

値に応じて、以下のようにオプションが表示されます。

表示される画面


ユーザーがログインするとき、ログイン前のユーザーとボットの友だち関係に応じて、以下の処理が実行されます。

ログイン前の関係 処理
友だち未追加 ボットを友だち追加するオプションが表示されます。オプションを有効にして続行すると、ボットが友だち追加されます。
ブロック済み ボットのブロックを解除するオプションが表示されます。オプションを有効にして続行すると、ボットのブロックが解除されます。
友だち追加済み ボットを友だち追加するオプションではなく、ボットが友だち追加済みであることが表示されます。

ユーザーとボットの関係を取得する

ユーザーとボットの関係を取得するには、次の2つの方法があります。

friendship_status_changedクエリパラメータを使用する

認可の要求時にbot_promptクエリパラメータを指定した場合は、ユーザーの認証と認可が完了すると返されるコールバックURLにfriendship_status_changedクエリパラメータが含まれます。

以下は、コールバックURLにfriendship_status_changedパラメータを含むレスポンスの例です。

HTTTP/1.1 302 Found
Location : https://client.example.org/cb?code={CODE}&state={STATE}&friendship_status_changed={FRIENDSHIP_STATUS_CHANGED}

friendship_status_changedクエリパラメータは、以下のいずれかの値になります。コールバックURLについて詳しくは、「認可コードを取得する」を参照してください。

説明
true ボットとユーザーの関係が、ログイン時に変化しました。具体的には、以下のいずれかです。
  • ユーザーがボットを友だち追加した。
  • ユーザーがブロックを解除した。
false ボットとユーザーの関係が、ログイン時に変化しませんでした。具体的には、以下のいずれかです。
  • ユーザーは以前からボットと友だちだった。
  • ユーザーがボットを友だち追加しなかった。
  • ユーザーがボットのブロックを解除しなかった。

Social APIを使って友だち関係を取得する

ユーザーがLINEログインを使用してアプリにログインし、アプリがアクセストークンを取得した後で、GETリクエストをhttps://api.line.me/friendship/v1/statusエンドポイントに送信します。

curl -X GET \
-H 'Authorization: Bearer {access token}' \
https://api.line.me/friendship/v1/status

APIコールが成功すると、friendFlagが返されます。このプロパティの値は、ユーザーがボットを友だち追加済みで、ブロックしていない場合はtrueです。そうでなければfalseです。

詳しくは、Social APIリファレンスの「ボットとの友だち関係を取得する」を参照してください。


ご意見やご要望がある場合

LINEプラットフォームのドキュメントやサービスについてご不明な点があるときは、まずCommunityサイトの「Q&A」ページをご覧ください。疑問が解決しない、またはドキュメントの内容やLINEプラットフォームの機能についてご要望があれば、以下のボタンをクリックするか、GitHubのLINE Platform feedbackリポジトリにイシューを作成してお知らせください。