この日はたぶん、この開発の中でも一番「うわぁ…」ってなった日。
朝イチはログアウトの謎バグから始まった。
ログインした直後なのに、言語を切り替えたり別ページに移動しただけで、なぜかログアウトされる。
最初はセッションの期限がおかしいんやと思った。
「ログイン状態を保存する時間が短すぎるんちゃうか?」とか疑って、そっちを見てた。
でも原因は全然違った。
画面上に置いてた“ログアウト用リンク”を、Webの仕組みが先読みしてた。
最近のWebは、ユーザーが次に押しそうなリンクを事前に読み込んで表示を速くすることがあるらしい。
普通のページなら便利。
でもログアウト先を先読みしたらどうなるか。
クリックしてないのにログアウト処理が走る😇
「リンクが表示されただけでログアウトする」って、初心者の自分からしたら意味分からん現象やった。
最終的にログアウトはリンクではなく、押したときだけ処理するボタンに変更して解決。
そこから本題。
この日の朝、「ユーザー名だけ入れたら、その人のThreads投稿を拾って診断する」クイック診断を実装した。
これこそ最初に思いついたサービスの形やった。
ログインして自分だけ診断するより、知り合い、有名人、気になるアカウントの名前を入れて結果を見る方が圧倒的に遊びやすい。
ユーザー名入力 → 投稿取得 → 絵文字ランキング → 16タイプ風診断。
これが動いたときは普通にテンション上がった。
「これや、最初に作りたかったやつ」って。
ところが昼過ぎ。
Threads APIの権限をちゃんと確認していく中で、任意のユーザー名から公開投稿を取る機能は、誰でも使える標準権限では使えないことが分かった。
必要なのはAdvanced Accessという上位権限。
さらにその申請にはMeta側の審査やビジネス認証が絡む。
つまり、開発者である自分の環境では動いても、そのまま一般公開したら一般ユーザーには動かない。
朝に作った看板機能が、昼には「このままでは本番で使えません」判定。
いや先に言えよ、って話やった🫠
この時点では、APIにそういう機能が“存在する”ことと、自分のアプリがそれを“一般公開で使える”ことを完全に別問題として理解できてなかった。
技術的に作れる=サービスとして出せる、ではない。
ここはかなり高い授業料になった。
悩んだけど、その日のうちに方向転換。
他人を診断する画面は削除して、「Threadsでログインした本人の投稿だけ診断する」形に戻した。
作ったばっかりやし残したい気持ちはあった。
でも動かへん目玉機能を残しても、ユーザーから見ればただの不具合やからな。
同じ日、AdSense向けの巡回プログラムまで自分でブロックしてることも判明。
サイト内の設定で「ロボットは来ないでね」みたいな指定をしてたら、Googleの広告審査に必要なクローラーまで来れなくなってた。
審査してほしいのに玄関に「立入禁止」貼ってたようなもん😇
さらにGemini呼び出しのタイムアウト処理、キャンペーン残数の二重消費なども修正。
朝から夜まで、作って直して消しての繰り返し。
ただ、この日一番大きかったのは、作った時間が勿体ないから残すんじゃなく、「本番で成立せんものは消す」と判断できたことやと思う。
※この日出てきた言葉の説明
・プリフェッチ(先読み):次に開きそうなページを、ユーザーが押す前に裏で読み込んでおく高速化機能。
・セッション:ログイン済みであることを一定時間覚えておく仕組み。
・Advanced Access:Meta APIの一部機能を一般ユーザー向けに使うための上位権限。通常より厳しい審査が必要。
・ビジネス認証:そのアプリを運営している事業者が実在するか、Metaに確認してもらう手続き。
・クローラー:検索エンジンや広告サービスなどが、Webページを自動で巡回して内容を確認するプログラム。
・タイムアウト:処理が一定時間終わらなかったとき、無限に待たず失敗として打ち切る仕組み。