# SDKでボットリンク機能を利用する

ユーザーがアプリにログインするときに、LINE公式アカウントを友だち追加するオプションを表示するように設定できます。これを、ボットリンク機能と呼びます。友だち追加するLINE公式アカウントは、開発者が指定できます。

設定を始める前に、『LINEログインドキュメント』の「LINEログインしたときにLINE公式アカウントを友だち追加する(ボットリンク)」を参照してボットリンク機能を理解する必要があります。特に、以下の事項を確認してください。

  • LINE DevelopersコンソールでLINE公式アカウントをチャネルにリンクする方法
  • LINEプラットフォームに送信するボットプロンプトパラメータとその動作
  • LINEプラットフォームから返される友だち関係フラグとその意味

ここでは、以下のボットリンク機能をLINE SDKで有効にする方法について説明します。

# ボットプロンプトパラメータをログインリクエストに設定する

以下のサンプルコードは、ログインリクエストにボットプロンプトパラメータとして.botPromptNormalまたは.botPromptAggressiveを設定する方法を示します。

// Includes an option to add a LINE Official Account as a friend in the consent screen.
var parameters = LoginManager.Parameters()
parameters.botPromptStyle = .normal
LoginManager.shared.login(permissions: [.profile], parameters: parameters) {
    // ...
}

// Opens a new screen to add the LINE Official Account as a friend after the user agrees to the permissions in the consent screen.
parameters.botPromptStyle = .aggressive
LoginManager.shared.login(permissions: [.profile], parameters: parameters) {
    // ...
}

パラメータ値について詳しくは、『LINE SDK for iOS Swiftリファレンス』の「LoginManager.Parameters」と「LoginManager.BotPrompt」を参照してください。

# ユーザーとLINE公式アカウントの間の友だち関係を確認する

ユーザーとLINE公式アカウントの間の友だち関係は、以下の方法で確認できます。

# ログインレスポンスのfriendshipStatusChangedプロパティを確認する

ログインに成功すると、LoginResultオブジェクトのfriendshipStatusChangedプロパティには友だち関係が変化したかどうかを示すブール値が含まれます。

友だち関係フラグを取得するには、以下の条件を満たす必要があります。

  • ログインリクエストにボットプロンプトオプションを指定する。
  • LINE公式アカウントを友だち追加するオプションを伴う同意画面がユーザーに表示される。

以下のサンプルコードは、friendshipStatusChangedプロパティを取得する方法を示しています。

var parameters = LoginManager.Parameters()
parameters.botPromptStyle = .normal
LoginManager.shared.login(permissions: [.profile], parameters: parameters) {
    result in
    switch result {
    case .success(let value):
        print(value.friendshipStatusChanged)
    case .failure(let error):
        print(error)
    }
}

friendshipStatusChangedプロパティについて詳しくは、『LINE SDK for iOS Swiftリファレンス』の「friendshipStatusChanged」を参照してください。

# LINEログインAPIを使って友だち関係を取得する

ユーザーがアプリにログインしてアクセストークンが返された後で、getBotFriendshipStatusメソッドを呼び出します。

API.getBotFriendshipStatus { result in
    switch result {
    case .success(let value): print(value.friendFlag)
    case .failure(let error): print(error)
    }
}

戻り値について詳しくは、『LINE SDK for iOS Swiftリファレンス』の「getBotFriendshipStatus」を参照してください。