開発秘話LINE連携

【個人開発】万年ダイエッターが作った食事管理アプリにLINE連携機能をつけたら、二重ログインの罠にハマった話

2024.03.11
読了目安: 5分

こんにちは!万年ダイエッターのWakuqqaです。

前回の記事では、AI食事管理アプリ「Log-Eats(ログイーツ)」を爆誕させたお話をしました。 今回は、そのLog-Eatsに「LINE連携」を組み込んだ時の苦労話を、恥を忍んで(そして面白おかしく)振り返ってみたいと思います。

ℹ️ アプリの概要

食事の写真を送るだけで、AIが瞬時にカロリーとPFC(タンパク質・脂質・炭水化物)を計算・記録してくれるアプリです。

ブラウザ版はこちら

🚀 「LINEから写真送れたら最高じゃね?」という甘い誘惑

Log-Eatsを作って数日、自分で使っていてふと思いました。「毎回ブラウザ開くの、ぶっちゃけ面倒くさいな……」

ダイエットは継続が命。めんどくさがりなダイエッターにとって「ブラウザを開く」という1タップすら高いハードルになります。

そこで思いつきました。「みんな毎日使ってるLINEから直接写真を送れたら、最強のUXになるのでは!?」

AIアシスタントに、「LINE連携したいんだけど」と伝えたところ、「いいですね!やりましょう!」と元気よく返事が。 これが、果てしなく続く「アカウント重複地獄」の入り口でした。

👿 第一の罠:未ログインユーザーの「とりあえずLINE連携」問題

実装自体は、ClerkのOAuth連携とLINE Messaging APIを使えばプロンプト数発でサクッと終わる……はずでした。 意気揚々とトップページに「LINEで始める / 連携する」という緑色の眩しいボタンを設置しました。

しかし、テストをしていて恐ろしいことに気がつきました。「あれ、俺の過去のデータどこ行った……?」

そう、実は私はすでにGoogleアカウントでLog-Eatsに登録し、数日分の記録をつけていました。 それにもかかわらず、ログアウト状態で「LINEで始める」ボタンを押し、全くの別アカウント(LINE紐付けの完全新規アカウント)を爆誕させてしまったのです。

🛡️ 解決策:UXを損なわない「ワンクッション」

これを防ぐためには、「LINEで始める」ボタンを押した瞬間に、「君、もしかしてすでにアカウント持ってない?」と優しく聞いてあげる必要がありました。

既存ユーザーにはログインを促し、設定画面から連携してもらう。完全新規の人はそのままLINE登録へ。 この「ちょっと待ってコール」を挟むことで、データの分散という大惨事を未然に防ぐことができました。

👿 第二の罠:Webhookからの「お前誰やねん」問題

LINE Bot側に写真を送った時の挙動も一筋縄ではいきませんでした。 LINEから画像がWebhookで飛んできた時、私たちのサーバーは「このLINEユーザーID、データベースのどのユーザーと紐付いてるんだっけ?」を探す必要があります。

ClerkのWebhookを使ってDB側にline_user_idを保存する処理を書きましたが、最初はエラー頻発。 原因は署名検証のトラブルや、非同期処理でのタイムアウトなど様々でした。

🎉 パワーアップしたLog-Eats

数々の罠を乗り越え、ついに「いつものLINEから写真を送るだけで食事記録が完了する」という最強の体験を手に入れました。

「バイブコーディング(AIとの対話型開発)」は便利ですが、既存のシステムと外部サービスをセキュアに結びつける実装では、人間側の「こういう落とし穴があるかも?」という想像力と要件定義が重要だなと痛感しました。

これからも、自分が「めんどくさい」と思ったことを解消するために、Log-Eatsを育てていこうと思います。 ぜひ一度、進化したLog-Eatsと、そのLINE機能を試してみてくださいね!

【個人開発】LINE連携機能で二重ログインの罠にハマった話 | Log-Eats | Log-Eats