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 3 years have passed since last update.

LINE BotAdvent Calendar 2019

Day 20

LIFFと相性がいいのはFlex Message?それともTemplate Message?

Last updated at Posted at 2019-10-21

LINE botといえばLIFFというLINE botと連携するWebアプリを作りたいときにとても便利なフレームワークです。このLIFFはLINE Developersで設定した独自のURLからアクセスして使うものですが、URLをそのまま使う方法もありますが、例えばbotのやり取りで取得した値をLIFFのリンクの中にパラメータとして付与して動作したいときがあります(つまり、LIFF_URL?value=hogeという形)。botのやり取りの中で動的に生成するときには、リンクのテキストをそのまま返信するよりもLINE botを使ってるならFlexMessageを使ってボタンを押したらリンクにアクセスして、LIFFを立ち上げるなんてことをやってみたいわけですよ。ところが実際にやってみるとハマってしまったので、その覚書です。

FlexMessageを使ってみた

FlexMessageでボタンの実装はやったことありませんでしたが、こちらのシミュレータを使って簡単に作成出来ました。実際に動かしたところがこちらです。

こちらは冒頭で話していたパラメータを付与していないパターンの動作ですが、問題なく動いています。そして、今度は同じFlexMessageでボタンで立ち上げるURLにパラメータを付与すると以下の画面が表示されます。

IMG_6988.png

あれ?LINEアプリの方はすでに最新バージョンになっているのに、これはどういうことでしょう?パラメータを付与するURLはFlex Messageに対応していないのでしょうか?知っている方いらっしゃったら教えて下さい。

色々調べてみたら

やはりFlex Messageにパラメータを付与したURLを使っている事例は見つからず、仕方ないので他の方法を探してみました。すると、Template Messageが見つかりました。Flex Messageとよく似ていますが、こっちは予め決められたテンプレートに対してカスタムを行うメッセージです。こちらにもボタンの中に埋め込んだURLを実行するアクションを入れてみました。先程失敗したパラメータを付与したLIFF URLをこのテンプレートメッセージを入れて再度試してみたら、問題なくLIFFが立ち上がりました。

IMG_6989.png

この動作の違いは一体…

Flex MessageとTemplate Messageではアクションの違いがあることが分かりました。これは中で動作しているプログラムに違いでもあるのでしょうか?とりあえず、現時点での結論としては 「LIFF URLをそのまま立ち上げるだけならどちらでもいいが、パラメータを付与したLIFF URLを立ち上げるときにはTemplate Messageのほうが良い」となりました
※この内容については、補足記事を書いたのでそちらをご覧ください。

6
3
3

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?