Djangoで作るLIFFアプリ

はじめに

この記事はあくあたん工房 Advent Calendar 2019,10日目の記事です.Advent Calendarにはなんでもありな面白い記事が載ってるのでぜひ.

adventar.org

この記事ではLINE Front-end Framework(LIFF)の紹介を兼ねてLINE上で動く簡単なアプリを作っているのでそれを紹介したいと思います.

LIFFって?

LINE Front-end Framework(LIFF)は、LINEが提供するウェブアプリのプラットフォームです。このプラットフォームで動作するウェブアプリを、LIFFアプリと呼びます。

LIFFアプリを使うと、LINEのユーザーIDなどをLINEプラットフォームから取得できます。LIFFアプリではこれらを利用して、ユーザー情報を活用した機能を提供したり、ユーザーの代わりにメッセージを送信したりできます。

developers.line.biz

LINE Botなどと合わせて使えたりするのとプロフィールやルーム情報を利用できる点が利点なのかなと思います.また従来はLINE内のブラウザでしか利用できなかったそうなんですが,バージョン2から外部のブラウザでも使えるようになりできることの幅が広がりました.

作っているもの

友人と行っている筋トレを今日は何時に行く?とか誰が行く?とかを毎回LINEで決めているんですがもうちょっといい感じに連絡できないかなということで筋トレのスケジュールを管理するアプリを作ろうかなと思いました.どうせなんでやった筋トレのメニューとかも保存する機能とかほしいなぁ……

構成

  • LIFF 2.1
  • Django 3.0
  • Bootstrap 4.3

アプリはPythonAnyware上にデプロイしました.

仕組みをざっくりと図にしました.認証するとliffを使ってユーザ情報を取得したりメッセージを送信したりできるようになります.

f:id:ocucraqp:20191210213342j:plain

したこと

  1. LINEチャネル作成
  2. Djangoでアプリ作成
  3. デプロイ

LINEチャネル作成

LINEにはAPIやclova用のスキルの作成時に利用するLINE Developersというものがあります.ここにMessaging APIを登録することでLIFFを利用できるようになります.

developers.line.biz

Djangoでアプリ作成

普通にWebアプリを作ればいいのですがLIFFを組み込む必要があります.javascriptでLIFFを利用して取得したID等の情報をpostしてサーバで管理することにしました.

一応コードをおいておきます.

github.com

デプロイ

PythonAnywareにデプロイしました.Django Girls Tutorialを見ながらしたのですがすごく簡単にデプロイできてびっくりしました.

tutorial.djangogirls.org

おわりに

一応デモのようなものは動いてはいるんですが機能もほとんど実装できてない上セキュリティなどがガバガバのガバなので公開するのは辞めておきます.一応テストで出した画面をおいておきます.(これのために何年かぶりにプロフィールを設定しました.)

f:id:ocucraqp:20191210221931p:plain
プロフィールを表示するデモ

また,LINE内のブラウザで動かすのが前提みたいなところがあるのでもっと軽いフレームワークで作りたかった(LIFFを使ってる記事とか見るとVueとかで実装してるのが多い気がする)んですが他のフレームワークを勉強する余裕がなかったんで使用経験のあるDjangoになっちゃいました.

明日以降もAdvent Calendarは続いていくので見ていただければ幸いです.