全国オンライン対応受付 平日 9:00-18:00
お問い合わせ

開発記録 / toi-toi-toi制作記 / Vol.12 toi-toi-toi制作記 Vol.1

記事 02

LIFFでLINE User IDを自動取得する——なぜフォームに入力欄を作らなかったか

設計中に、一度だけ変なアイデアが浮かんだ。「フォームに『あなたのLINE IDを入力してください』という欄を作る」という案だ。

2026-06-07 公開

設計中に、一度だけ変なアイデアが浮かんだ。「フォームに『あなたのLINE IDを入力してください』という欄を作る」という案だ。

1秒で捨てた。ユーザーは自分のLINE User IDを知らない。LINEのアプリ画面を探しても、どこにも表示されていない。「U」で始まる33文字の英数字を、自分で調べて入力できる人間は開発者しかいない。

では、どうするか。


LIFFという選択肢

LIFF(LINE Front-end Framework)はLINEアプリ内でWebページを開く仕組みだ。LINEの内蔵ブラウザで表示されるため、JavaScriptのSDKからLINEユーザーの情報にアクセスできる。

具体的には、LIFFのページを開いているユーザーのLINE User IDを、ユーザーが何も操作しなくても取得できる。

liff.init({ liffId: 'YOUR_LIFF_ID' }).then(async () => {
  if (!liff.isLoggedIn()) {
    liff.login();
    return;
  }
  const profile = await liff.getProfile();
  document.getElementById('line-user-id').value = profile.userId;
});

フォームのhiddenフィールドに、自動でLINE User IDがセットされる。フォームを送信するとそのIDがGASに届く。GASはそのIDを宛先にして予約確認のLINEメッセージを送る。

ユーザーがやることは何もない。予約フォームを普通に書いて送信するだけだ。


動いた瞬間

実装してLINEのリッチメニューからフォームを開いたとき、hiddenフィールドにUser IDが自動でセットされているのを確認した。「Uxxxxxxxx...」という文字列が、見えないフィールドに静かに入っている。

ユーザーは何もしていない。LINEアプリがそのユーザーだと認識しているから、そのIDが届いている。

この「見えない自動化」は、ユーザー体験として正しい。テクノロジーが透明であることが、使いやすさの本質だと思う。


LINEの外から開かれたとき

LIFFはLINEアプリの内側で開くことが前提だ。PCのChromeやSafariで開いた場合、liff.isLoggedIn()はfalseを返し、LINEのログインページにリダイレクトされる。

これは違和感がある体験だ。予約フォームを開こうとしたら、LINEにログインを求められる。

しかし予約システムでは割り切った。オーナーのお客さんはLINEを使っている。予約のリンクはLINEのリッチメニューかトーク画面に置く。その動線から入れば、必ずLINEアプリ内で開く。「LINE外からアクセスする人」のために設計を複雑にする必要はないと判断した。

設計はターゲットのユーザーに最適化する。全員のために設計しようとすると、誰にとっても中途半端になる。


hiddenフィールドにIDを入れる設計について

LINE User IDをhiddenフィールドに入れると、ブラウザの開発者ツールで見れる。「これはセキュリティリスクか」と一度考えた。

LINE User IDは公開されても単独では悪用できない。メッセージを送信するには、サーバー側で管理しているチャンネルアクセストークンが必要だ。IDだけ持っていても、LINEアカウントに何もできない。

このことを確認した上で、hiddenフィールドで渡す設計を許容した。セキュリティは「何が漏れるか」より「それで何ができるか」で判断する。


LIFFがなかった時代

今回の設計ではLIFFを使うことで、予約→LINE通知の流れを1ステップで実現できた。

LIFFがなければ「LINEで予約コードを取得する→フォームに入力する」という2ステップになる。フォームとLINEの間でユーザーが行き来する必要がある。

その摩擦の分だけ、予約を完了せずに離脱する人が増える。1ステップと2ステップの差は小さいようで大きい。予約フォームは完了してもらわなければ意味がない。


*次回は「GASスプレッドシート予約管理——在庫管理と同じ考え方で枠を設計した」*

*シンプルシステム株式会社 代表 伊藤勝彦*