6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

VueAdvent Calendar 2020

Day 19

Vueで始めるLIFFアプリケーション

Last updated at Posted at 2020-12-19

vue-cli で作成したプロジェクトに対して、 npm パッケージから liff をインストールして、使うところまでを紹介します。

7月に LIFF SDK が npm パッケージとして公開され、これまでの CDN 読み込みとはまた別の方法で LIFF を利用できるようになっています。

※ 筆者はmac osで開発してます。

プロジェクトの作成

とりあえず vue-cli で プロジェクトを作ってしまいます

yarn global add @vue/cli
vue create liff-vue
# いくつか項目選択を経て、ディレクトリが作成される

cd liff-vue

下記コマンドで、サーバーが立ち上がるところまで確認します。

yarn serve

スクリーンショット 2020-12-19 23.53.59.png

ngrok を使用する

LIFF の利用のために,https でアプリを公開している必要があります。
サーバーを用意する、S3などにあげるなどが勿論良いですが、今回は簡単にやるために ngrok を使用してローカルでたてた vue アプリを外部に公開する形をとります。

brew install ngrok

ngrok のコマンドは下記です。

ngrok http 8080

# Docker で開発している場合はこっちを使用
# ngrok http -host-header="0.0.0.0:8080" 8080

また、 package.json を編集しておきます。

package.json
"vue": {
   "devServer": {
      "disableHostCheck": true
  }
}

LINE Developers のページから LIFFアプリを登録する

スクリーンショット 2020-12-20 0.14.49.png

作成すると、LIFF IDが発行されるので、こちらをメモっておきましょう。

スクリーンショット 2020-12-20 0.16.57.png

LIFF をインストール、導入する

LIFF をさっとインストールしちゃいましょう。

yarn add @line/liff
src/App.vue
<template>
  <img alt="Vue logo" src="./assets/logo.png">
  <HelloWorld msg="Welcome to Your Vue.js App"/>
  loggedIn: {{ loggedIn }}
  {{ profile.displayName }}
</template>

<script>
import HelloWorld from './components/HelloWorld.vue'
// LIFFをimportする
import liff from '@line/liff'

export default {
  name: 'App',
  components: {
    HelloWorld
  },
  data() {
    return {
      loggedIn: false,
      profile: {},
      displayName: "",
    }
  },
  mounted() {
    // 最初に必ず実行する
    liff
      .init({ liffId: 'myLiffId' }) // LIFF IDを貼る
      .then(() => {
        this.loggedIn = liff.isLoggedIn()
        this.getProfile()
      })
      .catch((err) => {
        // Error happens during initialization
        this.occoredError = 'error:' + err
      })
  },
  methods: {
    // ログインユーザーのプロフィールを取得する
    getProfile() {
      liff.getProfile()
      .then(profile => {
        this.profile = profile
      })
    }
  }
}
</script>

LIFF アプリを発行した時にでる URL にスマホのLINEからアクセスしてみましょう。

IMG_9967.jpg

これでひとまずは簡単な LIFF アプリケーションの出来上がりです。

リファレンスも充実しているので、是非いろいろ触ってみてください!

6
3
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?