Quantcast
Channel: Postmanタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 470

PHPでLINEログイン実装してみたメモ①〜認可コードが返ってくるまで〜

$
0
0
準備 LINE developersのアカウント作成 まず最初にLINE developersのアカウントを作成します。 プロバイダーとLINEログインチャネル作成 下記概要ページにしたがって「プロバイダー」とLINEログインの「チャネル」を作成します。 概要 devlopersコンソールにログイン プロバイダー(利用者の情報(LINE IDなど)を取得する開発者・企業・組織のこと)を作成 チャネルを作成 今回はLINEログインチャネルを作成します 「新規チャネル作成」→「LINEログイン」を選択します。 必須項目を入力して「作成」します。アプリタイプは今回は「ウェブアプリ」を選択します。 。 LINEログインチャネルの設定 LINEログインアプリを作成すると次のようなページができます。ここでいろいろ情報が確認できます。 チャネルID(チャネルに対してユニークなID)やチャネルシークレットは後々いろいろ必要になってくるのでメモをしておくと良いかもしれません。 webアプリにlLINEログインを組み込む それでは作成するWEBアプリにLINEログインを組み込んでいきたいと思います。 大枠は下記公式ドキュメントも参照ください。 PHPでコードを書く まず初めに、PHPで簡単にハローワールドのコードを書きます。 <?php echo 'Hello, World!!'; ローカルサーバーを立ち上げる ターミナルを立ち上げ、ファイルが置いてあるディレクトリでPHPのローカルサーバを立ち上げます。-Sがポイントです。 php -S localhost:8000 index.php にアクセスして「Hello, World!!」が表示されていることを確認します。 ngrokでローカルサーバーを外部からでもつなげるようにする 次に「ngrok」というサービスを使って、自分のPCからしかアクセスできない「ハローワールド」を外からでもアクセスできるようにします。 ngrok公式 ngrokが便利すぎる ngrokのインストール 下記セットアップページにしたがって、ngrok公式からダウンロードします。 ngrokでサーバーを立ち上げる 先ほどローカルサーバーを立ち上げた同じディレクトリで、下記コマンドを入力してサーバーを立ち上げます。 ngrok http 8000 するとターミナル上に下記が表示され、http or httpsで外部からアクセスができるようになります。 ※フリープランの場合はサーバーを複数立ち上げられません。もしも既に立ち上がっている場合は下記コマンドでサーバーを停止してください。 killall ngrok // ngrokのサーバー停止 Forwardingにあるhttps://8bbebde7cc12.ngrok.ioにアクセスしてみます。(このURLはサーバーを立ち上げ直すたびに毎回変わります) ハローワールドが表示されていることが確認できました! コールバックURLを設定する 次に、コールバックURLを設定します。このURLはLINEの認証突破後に、「認可コード」と「State」を受け取るために設定します。(この2つは後ほどまた出てきます) ここには先ほどngrokで外部からアクセスできるようにしたURLを設定します。 メールアドレスの取得権限を申請する メールアドレスの情報を取得したい場合は下記手順で申請をしておきます。 ユーザーに認証と認可を要求する 次に、URLにアクセスした時にLINEの認証画面を挟むように設定します。 とりあえず、URLにパラメータをくっつけます。 URL https://access.line.me/oauth2/v2.1/authorize いろいろ複雑なので、まずは必須パラメータのみくっつけて試します。そして私はpostman(https://www.postman.com/)を使ってURLを作りました。 GETにしてurlを入れて、KEYとVALUEにパラメータを入れるとURLができるので便利です。 できたURLはこんな感じです。client_idとredirect_uriは適宜変更してください。 https://access.line.me/oauth2/v2.1/authorize?response_type=code&client_id=**********&redirect_uri=[https://](https://8bbebde7cc12.ngrok.io/)*****************/&state=1238al8esad8&scope=profile%20openid これをこのままブラウザのURLにコピペしてアクセスします。 正しくパラメータが設定できていれば、LINEのログイン画面にアクセスします。 401エラーの時 これは私も引っかかって「???」となったのですが、個人LINE等でアクセスしようすると公開前設定のため、アクセスができません。 確認のためにLINEログインチャネルの「権限設定」で個人LINEをメールで招待等で招待しておいてください。また、Tester権限の付与がよいらしい。開発中のアプリのテストのテストができるのはTester権限とのこと。 「ログイン」してみる 次に先ほどの認証画面で「ログイン」を押します。 「Hello, World」の文字が表示されたら成功です!! ここでアクセス後のURLをよく見てみます。先ほど設定した「コールバックURL」の後ろに何やらいろいろくっついているのがわかります。これがcode(認可コード)とstateです。 このcodeはこの後アクセストークンを発行するために必要な情報になります。アクセストークンを発行することで、LINE上に登録されているユーザー名やプロフィール画像、ユーザーID等の情報を取得することができます。 次の記事ではこのcodeを使ってアクセストークンを取得し、画面上にLINEのユーザー名や画像を表示させてみたいと思います。 今日のところはここまでです。

Viewing all articles
Browse latest Browse all 470

Trending Articles