# 在登入時將 LINE 官方帳號 (LINE Official Account) 加為好友 (bot link)

開發者可加入一個選項,讓用戶在登入開發者的 app 時,將開發者的 LINE 官方帳號加為好友,這就是 bot link 功能,可於 LINE Developers Console 中指定讓用戶加為好友的 LINE 官方帳號。

Consent screen

如用戶在登入時,於上方同意頁面中開啟 Add friend,則 LINE 官方帳號將被加為好友。欲取得更多建立聊天機器人的相關訊息,請至 Messaging API

# 顯示將 LINE 官方帳號加為好友的選項

為了在同意頁面中顯示將 LINE 官方帳號加為好友的選項,請依下列步驟進行設定。

  1. 連接 LINE 官方帳號及開發者的 channel
  2. 使用 bot_prompt query parameter,將用戶重新導向 LINE Login 授權 URL

在 LINE Developers Console 中,連接 LINE 官方帳號與開發者的 channel。

連接 LINE 官方帳號與開發者的 LINE Login channel 前,須先具備下列條件:

  • 連接 LINE 官方帳號的 Messaging API channel 與 LINE Login channel 必須屬於同一個 provider。

  • 開發者須為 LINE Login channel 與 LINE 官方帳號的管理員。

    開發者可於 LINE Developers Console 中查看該 channel 的管理員角色,並可於 LINE Official Account Manager 查看管理員角色。

  1. 登入 LINE Developers Console 並點選包含 LINE Login channel 的 provider。

  2. 開啟 LINE Login channel 設定。

  3. 點擊 Basic settings 表單中 Linked OA 下的 Edit

  4. 選擇欲讓用戶加為好友的 LINE 官方帳號,並點擊 Update

    開發者可選擇自己擔任管理員角色的 LINE 官方帳號。

    LINE Login channel 僅能連接一個 LINE 官方帳號。

# 使用 bot_prompt query parameter 將用戶重新導向 LINE Login 授權 URL

如下所示,使用 bot_prompt query parameter 將用戶重新導向 LINE Login 授權 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 query parameter 指定顯示方式。

說明
normal 在同意頁面中顯示將 LINE 官方帳號加為好友的選項。
aggressive 在同意頁面出現後,開啟新視窗,顯示加 LINE 官方帳號為好友的選項。

Screen to be displayed

Tip

欲取得 bot_prompt 以外的 query parameter 相關訊息,請查看要求授權

# 在同意頁面中顯示選項

依據用戶與 LINE 官方帳號的好友狀態,對用戶顯示的選項如下。

同意頁面顯示時的好友狀態 對用戶顯示的選項
Not a friend 顯示加 LINE 官方帳號為好友的選項。如用戶點選並繼續,則將 LINE 官方帳號加為好友。
Blocked 顯示解除封鎖 LINE 官方帳號的選項。如用戶點選並繼續,則 LINE 官方帳號將被解除封鎖。
Added as friend 顯示用戶已加 LINE 官方帳號為好友 ; 不顯示加 LINE 官方帳號為好友的選項。

# 取得用戶與 LINE 官方帳號的好友狀態

開發者可透過下列方法,取得用戶與 LINE 官方帳號的好友狀態。

# 使用 friendship_status_changed query parameter

如在發出授權請求 (authorization request) 時指定 bot_prompt query parameter,則在對用戶進行驗證和授權後, friendship_status_changed query parameter 將被回傳至 callback URL 中。

以下為回傳範例,friendship_status_changed query parameter 被回傳至 callback URL 中。

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

friendship_status_changed query parameter 可接收下列值。欲取得更多 callback URL 相關訊息,請至 Receiving the authorization code

說明
true 用戶與 LINE 官方帳號的好友狀態在登入時受到更改。下列情境可能導致此狀況發生:
  • 用戶將 LINE 官方帳號加為好友
  • 用戶解除封鎖 LINE 官方帳號
false 用戶與 LINE 官方帳號的好友狀態在登入時未受更改。下列情境可能導致此狀況發生:
  • 用戶已將 LINE 官方帳號加為好友
  • 用戶未將 LINE 官方帳號加為好友
  • 用戶未解除封鎖 LINE 官方帳號
Note

如同意頁面未顯示將開發者 LINE 官方帳號加為好友的選項,則不能加入 friendship_status_changed query parameter。

# 使用 Social API 取得好友狀態

在用戶登入開發者的 app,且 access token 被回傳後,將 GET request 發送至 https://api.line.me/friendship/v1/status endpoint。

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

如 API 呼叫成功,則回傳 friendFlag property。如用戶已將 LINE 官方帳號加為好友,且未封鎖 LINE 官方帳號,則該值為 true ; 否則,該值為 false

欲取得更多訊息,請至 Social API reference 中的 Get friendship status