【AI Studio】使ってThreads・Instagram自動投稿アプリを作成してみた(後編-Threadsアプリ作成)

IT

前回はThreads・Instagram自動投稿アプリの仕様を策定した。
(【AI Studio】使ってThreads・Instagram自動投稿アプリを作成してみた(前編-仕様策定))

今回は、AI Studioを活用したThreads自動投稿アプリの実装・作成記録だ。

仕様の確認と実装

まずは前回作成した要件定義書を渡し、Threads専用アプリの作成を依頼した。「不明点があればコード作成前に確認してほしい」と伝えたところ、AI Studioから実装方針について以下の5点を確認された。

AI Studioからの事前確認事項
  1. 投稿パターンの対象範囲:0枚(テキストのみ)、1枚(単一画像)、2枚以上(カルーセル)を自動判別するか
  2. サーバー接続方式:FTPかSFTP(SSH)か
  3. Threads APIのメディア処理待機:ポーリング(完了監視)を組み込むか
  4. GUIライブラリ:Tkinter(標準)かCustomTkinter(要追加導入)か
  5. 画像ファイルの配置場所:設定画面で指定した特定フォルダ直下とするか

これらに対し、「全パターンの自動判別対応」「FTP接続」「ポーリング実装」「軽量なTkinter」「画像と記事のフォルダは個別指定」と回答した。

すると、即座にTkinterベースのデスクトップアプリ(threads_poster.py)のコードが生成された。必要な外部ライブラリは通信用のrequestsのみという、極めて軽量な構成だ。

生成されたアプリの主な機能・特徴
  • 投稿パターンの自動判別:画像枚数に応じてTEXT、IMAGE、CAROUSELの各エンドポイントを自動切り替え
  • FTP画像管理:ローカルからユニーク名で自動アップロードし、投稿成功後にサーバーから即時削除(容量圧迫を防止)
  • メディア処理の監視:画像アップロード後、Threads側のステータス(FINISHED)を5秒間隔で最大1分間ポーリング確認
  • マルチアカウント対応:起動引数(--profile)や画面切り替えで、アカウントごとの設定ファイル(config_{profile}.json)を独立管理
  • 柔軟な運用制御:記事フォルダ(ready, done, error)や画像フォルダの個別パス指定、日跨ぎ対応の投稿禁止時間帯(夜間スリープ機能)

仕様を漏れなく伝えておけば、骨組みから実用的な処理までAIが一瞬で組み上げてくれる。

Threadsの認証情報とFTPの設定

生成されたコードを実行すると、問題なくGUI画面が立ち上がった。
しかし、実際に投稿を行うにはThreads APIのアクセストークン/User IDと、FTPサーバーの接続設定が必要になる。

そこで、AI Studioに以下の2点を相談した。

AI Studioへの追加質問
  1. Threadsの認証情報(User ID / アクセストークン)の具体的な取得手順
  2. 入力したFTP設定が正しいか検証するためのテスト方法

AIからは、Meta for Developersでのアプリ作成手順やテスター承認の流れ、トークン発行用URLの案内が返ってきた。
さらに親切なことに、設定ミスをその場で検知できるよう、アプリ画面上に「FTP接続テスト」および「API認証テスト」ボタンを追加した改良版コードを提示してくれた。ボタンを1クリックするだけで、小さなテストファイルを一時的にアップロード・削除し、疎通確認をログに出力してくれる設計だ。

Threads認証情報の取得でハマった罠

アプリ側の準備は万全だったが、実際のMeta側の管理画面で思わぬトラブルに直面した。

Meta for Developersの画面構成は頻繁にUIが変わるため、AIの案内と実際の画面表示が異なっていたのだ。やむを得ず、画面キャプチャを撮ってはAI Studioに見せて指示を仰ぐという泥臭い作業を繰り返し、なんとか「Threadsテスターの登録」までは漕ぎ着けた。

ところが、Threads側でテスター招待を「承認」したにもかかわらず、トークン発行ツールで以下のエラーが発生して先に進めなくなってしまった。

{"error_message":"Invalid Request: The user has not accepted the invite to test the app.","error_code":1349245}

「ユーザーがテスター招待を承諾していない」というエラーだ。すでにアプリ側で承認済みであるにもかかわらず、2日待っても状況は改善しない。AI Studioに相談しても決定的な解決策は得られなかった。

解決のブレイクスルー

結論から言うと、Chromeの「シークレットウィンドウ」を使ってMeta for Developersにログインし直して作業したところ、あっさりとアクセストークンが取得できた。

通常のブラウザに残っていた古いキャッシュや、別アカウントの認証セッションが内部で干渉していたことが原因だったようだ。

無事にアクセストークンとUser IDが手に入ったため、テスト記事をセットして自動投稿を実行したところ、何事もなかったかのようにあっさりと投稿が完了した。

まとめ

AI Studioを活用することで、要件定義からPythonデスクトップアプリの実装までを短時間で完遂することができた。ゼロから自力で組んでいたら、ここまでのスピード感で形にするのは難しかったはずだ。

今回最も手こずったのは、プログラムの実装ではなく外部サービス(Meta / Threads)の認証情報の取得だった。AIの知識ベースと現行UIの差異や、ブラウザのキャッシュに起因するエラーなど、ツールの回答だけに頼り切れない場面では「シークレットウィンドウでの検証」といった現場目線のアプローチが重要になる。

認証の壁さえクリアしてしまえば、アプリ自体は極めて軽快に安定して動作しており、日々の運用効率化に大きく貢献してくれている。

タイトルとURLをコピーしました