Q&A

LINEログインv2.1の「IDトークンを検証する」を実行してもプロフィールが取得できない

前提・実現したいこと

Nuxt.jsを使ってLIFFアプリを制作しています。 こちらのIDトークンを検証するを実現してLINEのプロフィールを取得したいです。

発生している問題・エラーメッセージ

いくつかのパラメータの欠落または無効になっているというエラーが発生しています。

{
    "error": "invalid_request",
    "error_description": "some parameters missed or invalid"
}

該当のコード

<template>
  <div class="container">
    <Registration :lineLogin="lineLogin" />
  </div>
</template>

<script>
// components
import Registration from '@/components/Molecules/Registration';

export default {
  components: {
    Registration,
  },
  methods: {
    async lineLogin() {
      try {
        // トークン取得
        const idToken = await liff.getIDToken();
        alert(idToken);
        // クライアントIDが取得できているか確認
        alert(process.env.LIFF_CHANNEL_ID)
        // プロフィール取得
        const profile = await this.$axios.$post('https://api.line.me/oauth2/v2.1/verify', {
          id_token: idToken,
          client_id: process.env.LIFF_CHANNEL_ID,
        });
        console.log(profile.email);
      } catch (err) {
        alert(err.response.data.error);
        alert(err.response.data.error_description);
      }
    },
  },
};
</script>

試したこと

1. トークンやクライアントIDが取得できているか確認

alertで確認しましたが問題なく取得できています。

2. トークン取得方法に誤りがないかどうか確認

https://developers.line.biz/ja/reference/liff/#get-id-token

上記にやり方が書いているがコードには問題がなさそうでした。

3. プロフィールの取得方法

https://developers.line.biz/ja/reference/line-login/#verify-id-token

リクエストボディに必要なid_token, client_idがあるので問題なさそうです。

https://developers.line.biz/ja/reference/line-login/#verify-id-token-error-response エラーレスポンスに関しても記載されていますが、当てはまっているところがないためどのように修正すればいいかわかりません。

どのようにすればPOSTが成功するのでしょうか? ご教授お願い致します。

  • 0
  • 1
  • 2079
  • twitter facebook

自己解決しました。 liff.getDecodedIDToken()で名前、プロフィール画像、メールアドレスが取得できるのでこちらを使いました。 https://developers.line.biz/ja/reference/liff/#get-decoded-id-token

  • 1
Are you sure? question.vm