Open5

LIFF開発メモ

webdevwebdev

チャネルでアクセス権を管理

チャネルのステータスが初期設定の非公開であれば、
チャネルに登録している、権限がAdminTesterのメンバーだけに表示を許可できます。

権限を与えられていないLINEアカウントでLIFFにアクセスした場合はエラーを返します。

400 Bad Request
400 Bad Request

チャネルのメンバーは、タブの権限設定から確認できます。

権限設定タブ

webdevwebdev

自分だけのグループトーク

LIFFには、LINEアプリのトークルームから起動しないと使用できない機能があります。
(KeepからLIFFを開いてデバッグしたら、sendMessageが権限エラーで利用できなかった経験あり)

とはいえ、開発中のLIFF URLを誰かにあててトークで公開するわけにもいかないため
開発中のLIFF URLを開くために、自分だけが参加しているトークをつくると便利です。

  1. トークルーム作成を開く
  2. グループを選ぶ
  3. 友だちを選択画面で誰もえらばずに次へ
  4. メンバーが自分だけなのを確認して作成
webdevwebdev

LIFFは公開すると非公開に戻せない

チャネルのタイトル付近にある、ステータス非公開を選択すると
確認をはさみ、ステータスを公開へ変更できます。

チャネルを公開すると、LIFF URLから誰でもサービスへアクセスできるようになります。

webdevwebdev

ローカルで編集中のソースをデバッグ

チャネルには、複数のLIFFを登録できるため
開発者ごとのローカル環境用のLIFFを設置して、エンドポイントへ各自のローカルアドレスを登録する使い方ができます。

LIFF IDは、環境変数から参照する設計にしておくと
PRDやSTGだけでなく、開発者ごとの環境でも手軽に切り替えられて便利です。

LINEアプリからローカルLIFFを開いて動作確認

LINEアプリからLIFF URLを開くと、LIFFブラウザというLIFFアプリ専用のブラウザが起動します。

このLIFFブラウザは、ローカルネットワーク内でのみ表示可能なURLを表示できない仕様になっていて
Safariからは表示できるlocal IPのアドレスも、このようなエラーになります。

このサイトは安全ではありません

トンネリングツールを利用するとLIFFブラウザでも開発ソースをデバッグできる

このようなときはngroklocalhost.runといったトンネリングツールを利用すると
コンテンツを世界に公開するURLを発行できるため、LIFFブラウザからもデバッグできます。

localhost.runの場合、このようなsshコマンドを実行すると
localhost:8080を表示できるhttpsから始まるランダム文字列をはさんだURLを発行できます。

ssh -R 80:localhost:8080 nokey@localhost.run

(省略)

c68e10099e8101.lhrtunnel.link tunneled with tls termination, https://c68e10099e8101.lhrtunnel.link

発行されたURLを開発LIFFのエンドポイントへ設定すると、LIFFブラウザでも開発中のソースを確認できます。

webdevwebdev

トンネリングツール

LIFFブラウザで開発中のローカルソースをデバッグしたいとき、トンネリングツールを利用します

localhost.run

コマンドラインのsshで実行でき手軽です。
ときどき繋がらなくなります。(2021年〜1年半ほど使用させてもらった感想)

ssh -R 80:localhost:3000 nokey@localhost.run

(省略)

c68e10099e8101.lhrtunnel.link tunneled with tls termination, https://c68e10099e8101.lhrtunnel.link

https://localhost.run

localtunnel

最初にインストールが必要ですが、コマンドラインのsshで実行でき手軽で安定しています。
初回アクセスのときFriendly Reminder の同意画面が提示され、Click to Continueボタンでコンテンツが表示されます

npx localtunnel --port 3000
your url is: https://little-ties-join-118-236-119-204.loca.lt

https://github.com/localtunnel/localtunnel