はじめに
LIFFはパスとクエリパラメータを受け取ることができるようになっています。
これとテンプレートを使ったページ生成を利用して、用意されている FULL, TALL, COMPACT の3種類の LIFF ID を用意するだけで、あとは自由にサイズと内容を変更できるようにします。
ここではとりあえず動く環境を用意して、その動きから中身を理解していきたいと思います。
手順
- Heroku の準備1
- LINE の準備
- Heroku の準備2
Heroku の準備1
- リポジトリへアクセス
- Deploy to Heroku ボタンを押す
- appurl は https://アプリ名.herokuapp.com となる
5. 例えば https://parameterized-liff.herokuapp.com
6. アプリ名を入力してavailableなら この状態で止めておいて、LINE の準備を行う
LINE の準備
-
LINE Developers にログイン
Heroku の準備2
動作確認
-
Messaging APIのチャネルの Messaging APIタブにあるQRコードで友達登録
-
何かテキストを送信
-
FLEX Messageが帰ってくるのでLIFFの大きさを選ぶとそのページが開かれる
-
Webの中身は送信したテキスト
LIFFアクセスの流れ
def show_liff(liff_type, page="None"):
if request.args.get("liff.state"):
# 1次リダイレクト
return template_render(liff_type, "login")
# 2次リダイレクト
return template_render(liff_type, page)
@app.route("/liff/<liff_type>", methods=['GET'])
def show_liff_1st(liff_type):
return show_liff(liff_type)
@app.route("/liff/<liff_type>/<page>", methods=['GET'])
def show_liff_2nd(liff_type, page):
return show_liff(liff_type, page)
- パスやパラメータが渡されているときには最初に指定したURLに
liff.state
というパラメータが付きのエンドポイントアクセスします。 - そこでLIFFへのログインが実行されると、元々設定していたパスとパラメータを持ったURLにアクセスします。