SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

LINEで始めるアプリ開発

LINEアプリ開発の基本、LINEユーザと連携するために認証の仕組みと流れを理解しよう

LINEで始めるアプリ開発 第2回

  • X ポスト
  • このエントリーをはてなブックマークに追加

友だち登録との連携

 友だち登録するには、QRコードを読んで登録する流れなどが一般的ですが、LINEログインしたときに同時に友だち登録をさせることも可能です。

友だち登録画面をLINEログイン時に行う

 LINEログイン画面で友だち登録をする場合には、図5に示すように2種類の表示方法があります。

図5:LINEログイン時の友だち登録表示例
図5:LINEログイン時の友だち登録表示例

 この表示方法は、LINEログインのURLを発行する際にbot_promptというパラメータを追加することで可能です。先ほど紹介したコードを、リスト4のようにすることでURLが作成可能です。

リスト4:友だち登録ボタンを表示するためのLINEログインURLの作成
$query = http_build_query([
    'response_type' => 'code',
    'client_id' => <チャネルID>',
    'redirect_uri' => 'http://line-sample.enbind.work/callback',
    'state' => $random_uid,
    'scope' => 'profile',
    'bot_prompt' => 'normal', //(1)追加のパラメータ
]);
$url = 'https://access.line.me/oauth2/v2.1/authorize?'.$query;

 (1)でbot_promptというパラメータを追加します。値には、normal、またはaggressiveのいずれかを指定します。

 この違いは図5で示したとおりで、normalでは認証画面内に「友だち登録」ボタンが追加され、aggressiveでは「友だち登録」画面が追加されます。

 実際に連携するBot、つまり「Messaging APIチャネル」は、LINEログインチャネル側でも設定が必要で、図6のようにLINEログインチャネルの設定から「リンクされたボット」で指定して下さい。

図6:友だち登録連携をするための設定
図6:友だち登録連携をするための設定

友だち登録しているか確認する

 LINEログイン時に友だち登録ボタンが表示できても、実際に友だち登録するかは利用者の自由になっています。そのため、実際のサービスでは友だち登録していないとサービスとして成立しない場合や、不都合が生じる場合などがあります。

 その場合、利用者が友だち登録しているかを確認する必要があります。これには、友だち関係を取得するAPIを利用します。実際の利用では、プロファイル情報を取得する場合と同じでアクセストークンを取得していることが前提で、リスト5のようにして実行することができます。

リスト5:友だち状態を取得するAPIの結果
 $options = [
  'http' => [
  'method' => 'GET',
  'header' => [
  sprintf('Authorization: Bearer %s',$json['access_token'])
  ],
  // (省略)
  ],
  // (省略)
 ];
 $response = file_get_contents('https://api.line.me/friendship/v1/status',false,stream_context_create($options));
 $json = json_decode($response,true);

次のページ
LINEアプリを用いてテストを行う場合の注意

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
LINEで始めるアプリ開発連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト 小林 昌弘(コバヤシ マサヒロ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/17401 2023/03/09 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング