【LINE】APIからユーザプロフィールを取得する

2021.01.25

はじめに

CX事業本部の吉川です。

LIFFアプリのバックエンドでユーザ情報を取得したいケースはよく発生すると思います。
例えば、Lambda Authorizer内で認証認可したい場合などですね。

LambdaオーソライザーでLINEミニアプリ用APIのアクセス制御をする #LINE_API

今回はこのようなフロントエンドから渡ってくるアクセストークンを使ってLINE APIを叩いて取得する、というシチュエーションを想定してAPIの使い方を検証してみました。

なお本記事ではLINE DevelopersでLIFFアプリプロジェクトを作成するステップは割愛します。

はじめてのLIFF #LINE_API

アクセストークンを取得

まずはアクセストークンをお試しでどう取得するかですが、公式がline-liff-v2-starterというリポジトリを公開してくれており、こちらを利用するのが楽だと思いました。

line/line-liff-v2-starter

cloneして使わせて頂きましょう。

git clone https://github.com/line/line-liff-v2-starter
cd line-liff-v2-starter

以下のコマンドでWebアプリを起動します。
デフォルトでは5000番ポートで立ち上がります。

npm i
MY_LIFF_ID=xxxxxxx npm run start # 5000番ポートでWebアプリが立ち上がる

環境変数 MY_LIFF_ID は必須なので忘れないようにしましょう。

さらに、LIFFアプリではHTTPS必須のため、ngrokを使います。
別のターミナルを開いて下のコマンドを実行します。

ngrok http 5000

関連記事: ngrokを使ってローカル開発中のVueアプリをHTTPSで公開する

HTTPSなURLが得られたらLINE Developersで設定します。

そしてLIFFアプリにアクセスするとサンプルアプリが開けました。

Log in をクリックしてLINEログインした後、 Get Access Token をクリックすると、

アクセストークンが取得できました。

APIを叩いてプロフィール情報を取得

LINEログイン v2.1 APIリファレンス

ドキュメントに従って、curlコマンドでAPIを叩いてみます。

curl -X GET https://api.line.me/v2/profile -H 'Authorization: Bearer ACCESS_TOKEN'

返ってきた結果は以下。

{"userId":"xxxxxxxxxxxxxxx","displayName":"xxxx","pictureUrl":"https://profile.line-scdn.net/xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}

無事プロフィールを取得できました。