S82: LINE Messaging API正式接続 + マイページログイン機構
S82: LINE Messaging API正式接続 + マイページログイン機構
日付: 2026-02-25
カテゴリ: wisdom
やったこと
1. LINE Messaging Channel Access Token 正式設定
前回のセッションで発覚した「LINEカルーセルが飛ばない」問題の根本原因は、Secret ManagerのLINE_MESSAGING_CHANNEL_ACCESS_TOKENがInspireボット(@787oguzk)のトークンだったこと。今回ユーザーからMySpirits(@838imbvp)のチャネルID・シークレットを受領し、正しいトークンを発行→Secret Manager更新→Cloud Run Rev19デプロイまで完了。
ボット認証確認:
@838imbvp — My Sprits-ポケットに魂の羅針盤
chatMode: bot / markAsReadMode: auto
2. マイページにLINE Login画面追加
mypage.htmlに直接アクセスした未ログインユーザーが「index.htmlにリダイレクトされてしまう」問題を修正。マイページ内にLINE Loginボタン付きのログイン画面を表示するように変更。
変更内容:
– ログイン画面HTML追加(LINEグリーンのログインボタン + コスモスデザイン統一)
– checkAuth(): リダイレクト→ログイン画面表示に変更
– handleAuthCallback(): URL ?auth_token=パラメータ検出→localStorage保存→URL浄化
– startLineLogin(): redirect_uriにmypage.htmlを指定
– showLoginScreen() / showAuthContent(): 画面切り替え関数
– handleLogout(): リダイレクト→ログイン画面表示に変更
– auth-content wrapper divで認証済みコンテンツをラップ
3. 本鑑定1200字増量(前セッションからの反映確認)
fortune_prompts.pyの各章800字→1200字、max_tokens 5000→8000、timeout 120s→180s。Rev18でデプロイ済み→Rev19でも引き継がれている。
やらかしたこと
- LINE Messaging APIのトークン種別(30日期限のclient_credentialsトークン vs 長期トークン)の説明が冗長すぎてユーザーを混乱させた。「動く。期限切れたら差し替えるだけ」の一言でよかった。
- マイページのログイン機構の問題について、ユーザーが「ログインしたら済むんやろ?」と聞いてるのにコードの詳細を語り始めた。もっとシンプルに答えてから黙って直すべき。
教訓
- ユーザーへの説明は結論→作業の順番。技術的な背景を説明してから結論を言うのは逆。「動く」「直す」が先。
- LINE Bot のチャネルIDとシークレットがあればclient_credentialsでトークン発行可能。LINE Developers Consoleにログインしなくても、curl一発でBotプロフィール確認→トークン発行→Secret Manager更新→デプロイができる。
- 認証フロー(LINE Login OAuth 2.1)のredirect_uriは動的に指定可能。auth.pyの
/api/auth/line/loginはredirect_uriクエリパラメータを受け取るので、index.htmlからでもmypage.htmlからでも同じOAuthフローが使える。
エージェントとのやりとりで気づいたこと
コンテキスト圧縮後のセッション再開では、前回の最後のユーザーメッセージとその周辺のコンテキストが非常に重要。サマリーだけでは「ユーザーがトークンを提供したかどうか」のような微妙な情報が失われる。重要な受領情報(秘密鍵、トークン、認証情報)はSession Handoffに明示的に含めるべき。
デプロイ状況
| サービス | Rev/状態 | 変更内容 |
|---|---|---|
| myspirits-api (Cloud Run) | Rev19 | LINE_MESSAGING_CHANNEL_ACCESS_TOKEN=MySpirits正式トークン |
| myspirits LP (XServer) | mypage.html更新 | LINE Login画面+auth_tokenコールバック |