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

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

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

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

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

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

以下のサンプルコードは、LoginButtonウィジェットを使用する場合にbotPromptパラメータを設定する方法を示しています。

...
LoginButton loginButton = rootView.findViewById(R.id.line_login_btn);

loginButton.setAuthenticationParams(new LineAuthenticationParams.Builder()
        .scopes(Arrays.asList(Scope.PROFILE))
        .botPrompt(BotPrompt.normal) // configure it here
        .build()
);
...

以下のサンプルコードは、LoginApi.getLoginIntent()メソッドを使用する場合にbotPromptパラメータを設定する方法を示しています。

Intent loginIntent = LineLoginApi.getLoginIntent(
    view.getContext(), 
    Constants.CHANNEL_ID, 
    new LineAuthenticationParams.Builder()
            .scopes(Arrays.asList(Scope.PROFILE))
            .botPrompt(BotPrompt.normal) // configure it here
            .build());
            
startActivityForResult(loginIntent, REQUEST_CODE);

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

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

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

# ログインレスポンスのLineLoginResultオブジェクトを確認する

ログインに成功すると、LineLoginResultオブジェクトには友だち関係が変化したかどうかを示すブール値が含まれます。この値はgetFriendshipStatusChanged()メソッドで取得できます。

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

  • ログインリクエストのLineAuthenticationParamsオブジェクトにbotPromptパラメータを指定する。
  • LINE公式アカウントを友だち追加するオプションを伴う同意画面がユーザーに表示される。

以下のサンプルコードは、LineLoginResultオブジェクトから友だち関係を取得する方法を示しています。

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    ...
    
    LineLoginResult result = LineLoginApi.getLoginResultFromIntent(data);
    
    boolean friendshipStatusChanged = result.getFriendshipStatusChanged();
    
    ...
}

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

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

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

boolean isFriendToTheBot = lineApiClient.getFriendshipStatus();

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