友だち登録との連携
友だち登録するには、QRコードを読んで登録する流れなどが一般的ですが、LINEログインしたときに同時に友だち登録をさせることも可能です。
友だち登録画面をLINEログイン時に行う
LINEログイン画面で友だち登録をする場合には、図5に示すように2種類の表示方法があります。
この表示方法は、LINEログインのURLを発行する際にbot_promptというパラメータを追加することで可能です。先ほど紹介したコードを、リスト4のようにすることで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ログインチャネルの設定から「リンクされたボット」で指定して下さい。
友だち登録しているか確認する
LINEログイン時に友だち登録ボタンが表示できても、実際に友だち登録するかは利用者の自由になっています。そのため、実際のサービスでは友だち登録していないとサービスとして成立しない場合や、不都合が生じる場合などがあります。
その場合、利用者が友だち登録しているかを確認する必要があります。これには、友だち関係を取得するAPIを利用します。実際の利用では、プロファイル情報を取得する場合と同じでアクセストークンを取得していることが前提で、リスト5のようにして実行することができます。
$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で始めるアプリ開発連載記事一覧
-
- LIFFアプリの構築方法とは? LINEアプリ上に独自のサービス機能を追加しよう
- LINEでメッセージの送受信を行おう! Messaging APIの基本的な使い方から解説
- LINEアプリ開発の基本、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本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
