📝 はじめに
こんにちは、piyovateです!
このシリーズでは、Raspberry PiとPythonを使って「SNSフォロワー数をリアルタイムで見える化する壁掛けディスプレイ」の構築を目指しています。
前回の【第5回】では、Qiita APIを使って実際の「いいね数」を取得し、UIに反映するところまでを実装しました。
今回の【第6回】では、X(旧Twitter)APIを使ってフォロワー数を取得し、画面に反映していきます!
InstagramとFacebookも予定していましたが、XのAPI取得に予想以上に時間がかかったため、今回はXのみにフォーカスします。
次回でAPI取得はすべて完了する予定です…予定です、たぶん。
GitHubにもプロジェクトを公開しているので、セットアップやコード全体は以下を参照ください👇
🔗 GitHub - SystermDevelopment/follower-counter
🎯 今回の目的
- X APIを使ってフォロワー数を取得
- ステータスコードに応じた簡易エラーメッセージの実装
- UIへの連携とログ出力確認
🔑 APIトークンの取得
- X Developer Platform にログイン
- プロジェクトを作成(無料プランでもOK)
- Bearer Token を取得
取得したトークンは .env
ファイルで管理します。
X_TOKEN=your_bearer_token
X_ACCOUNT=technosphere_co
🧠 実装のポイント
API/xAPI.py
に以下のような関数を実装しました:
def get_x_follower_count():
# ユーザー情報取得 → ID抽出 → フォロワー数取得
# ステータスコード200以外は文字列でエラー内容を返す
# 正常時はフォロワー数(int)を返す
返却値の例:
状況 | 返却値 |
---|---|
成功 |
9 (フォロワー数) |
失敗(例) | "詳細情報エラー(429エラー)" |
このように、表示側(UI)でそのまま表示できるように文字列で返却する構成にしています。
⚠️ 無料版X APIの制限について
実装してみて最も苦労したのは、無料版X APIが非常に厳しいレート制限(利用回数制限)を設けている点です。
ユーザー情報やフォロワー数を取得するエンドポイントは、数回のアクセスで 429 Too Many Requests
エラーを返すことが多く、実質的に「無料プランでの安定運用は難しい」と感じました。
APIの反応がないときも、「エラーで落とす」のではなく、画面にエラーメッセージをそのまま表示することで、最低限のUIの安定性は保つようにしています。
🖼️ UIへの反映
前回に続き、ui.py
側で x_count = xAPI.get_x_follower_count()
を取得し、ラベルに反映します。
返り値が数値でも文字列でもそのまま表示されるよう設計しています。
📦 実行例(ログ出力)
@technosphere_co のXフォロワー数は 9 人です。
または、API制限時は:
詳細情報エラー(429エラー)
🧩 GitHub Issueでのタスク管理(実例)
今回のX API連携機能は、GitHubのIssueを使って以下のように管理・実装しました。
-
Issue #2
に「X(旧Twitter)APIによるフォロワー数取得機能の追加」としてタスクを登録 - 作業ブランチ
feature/x-api-basic-support
を作成し、実装を進行 - エラーハンドリングなどの対応を完了したあと、プルリクエストを提出
- PRには
関連Issue: #2
を記載して、Issueを手動でクローズ
🔜 次回の予定
- InstagramとFacebook APIの連携
- これでSNS API連携はひとまず完結予定です…予定です、たぶん
🔗 シリーズリンク
📚 全記事まとめはこちら → シリーズまとめリンク