📝 はじめに
こんにちは、piyovateです!
このシリーズでは、Raspberry PiとPythonを使って「SNSフォロワー数をリアルタイムで見える化する壁掛けディスプレイ」の構築を目指しています。
前回の【第4回】では、PyQt5 を使ってSNSフォロワー数を表示する全画面UIの構築を行い、仮の値を使って「Instagram」「Qiita」「X」「Facebook」それぞれのカウンターを表示しました。
今回は【第5回】として、Qiita APIを使って実際の合計いいね数を取得し、画面に反映するところまでを実装していきます。
今回は予定を変更してAPI連携をQiitaに限定し、API連携とGitによる構成管理の基本にフォーカスします。
他SNS(X・Instagram・Facebook)は今後対応予定です。
GitHubにもプロジェクトを公開しているので、セットアップやコード全体は以下を参照ください👇
🔗 GitHub - SystermDevelopment/follower-counter
🎯 今回の目的
- Qiita API を使って特定ユーザーの合計いいね数を取得
-
.env
によりトークンを安全に管理 - PyQt5 UI へリアルタイムに表示反映
- Gitブランチ運用を通じた小規模チーム開発の基盤構築
🖼️ アイコン画像について
-
asset/
配下にx.png
,qiita.png
,facebook.png
,instagram.png
を配置してください - SNS公式ロゴ画像は商標・利用規約の制約があるため、GitHubなどの公開リポジトリでは配布できません。
- そのため、
asset/
ディレクトリは.gitignore
により Git 管理対象外としています - 必要に応じてご自身でライセンスを確認のうえ画像を調達・配置してください
📁 プロジェクト構成(概要)
follower_counter/
├── main.py # アプリ起動エントリーポイント
├── ui.py # PyQt5による画面表示
├── config.py # 環境変数の読み込み
├── API/QiitaAPI.py # Qiita APIによる数値取得処理
├── asset/ # SNSアイコン画像(公開NG)
└── .env # Qiitaトークン(公開NG)
🔐 .envのサンプル
QIITA_TOKEN=your_qiita_token
ORGANIZATION_NAME=example_user
※ トークンは Qiitaの個人設定ページ から取得できます。
Git管理しないよう、.gitignore
への追加もお忘れなく。
⚙️ 環境セットアップ(仮想環境あり)
1. PyQt5のインストール(apt)
sudo apt install python3-pyqt5
2. 仮想環境の作成と有効化(システムパッケージ共有付き)
python3 -m venv venv --system-site-packages
source venv/bin/activate
3. Pythonパッケージのインストール
pip install -r requirements.txt
💡
--system-site-packages
を付けることで、仮想環境内からでも apt 由来の PyQt5 を使用可能になります。
▶️ 実行コマンド
python main.py
実行すると、画面には以下が表示されます:
- Qiita:API経由で取得した合計いいね数(リアルタイム)
- その他(X・Instagram・Facebook):現時点では定数表示
🌿 Gitのブランチ運用方針(簡略)
開発中は以下のようなブランチ構成で進行しています:
ブランチ | 用途 |
---|---|
main |
最終成果物の管理 |
staging |
検証用の統一ブランチ |
develop |
開発作業の統合ブランチ |
feature/xxx |
機能ごとの作業ブランチ |
fix/issue-番号 |
Issue対応用ブランチ |
Gitの詳細な運用ルールや履歴はGitHubに記載しています。
Issueはあまり使っていないので、勉強の意味も含めて積極的に利用していきます!
🔜 次回の予定
- X / Instagram / Facebook API連携の実装
- フォロワー数の非同期取得・自動更新
- 音声通知や更新履歴表示の追加も検討中!
🎉 おわりに
Qiita APIを通じて、自分の技術アウトプットが**“見える”**ようになるのは、なかなか楽しい体験でした。
今回はQiitaに絞って連携しましたが、APIの使い方や環境変数の管理、Gitでの構成管理など、実践的な観点で多くの学びがありました。
次回は、いよいよ他のSNS APIとの連携にもチャレンジする予定です(…予定です、たぶん)。
🔗 シリーズリンク
📚 全記事まとめはこちら → シリーズまとめリンク