Social Media Automation
Multi-platform social media management tool for automated posting, scheduling, and analytics.
概要
複数のSNSプラットフォーム(X/Twitter, Bluesky, LinkedInなど)を一元管理し、コンテンツのスケジューリング、分析、自動化を行うCLIツール。
主な機能
- 複数プラットフォーム対応(X/Twitter)
- 投稿の即時実行とスケジューリング
- ドラフト管理
- テンプレート管理(変数の自動抽出と適用)
- 定期投稿のスケジューリング
- タイムラインの取得
- インタラクション機能(リプライ、リツイート、いいね)
- メンションの監視
- APIレート制限の管理
- OAuth 2.0認証フロー
- SQLiteデータベースによるデータ永続化
インストール
cd ~/.openclaw/workspace/skills/social-media-automation
python -m venv .venv
source .venv/bin/activate
pip install -e .
または
pipx install social-media-automation
使用方法
初期設定
# 設定ファイルの作成
social-media-automation init
# .envファイルを編集してAPIキーを設定
nano .env
基本的な操作
# ツイートの投稿
social-media-automation post "Hello, world!"
# 特定のプラットフォームに投稿
social-media-automation post "Hello from Bluesky!" --platform bluesky
# スケジュールされた投稿の確認
social-media-automation schedule list
ドラフト管理
# ドラフトの作成
social-media-automation draft create --platform x --content "Draft content"
# ドラフトの一覧表示
social-media-automation draft list
# ドラフトの表示
social-media-automation draft show 1
# ドラフトの編集
social-media-automation draft edit 1 --content "Updated content"
# ドラフトの削除
social-media-automation draft delete 1
スケジュール管理
# 投稿のスケジュール
social-media-automation schedule "Hello at 9 AM!" --schedule 2026-03-14T09:00:00
# スケジュールの一覧表示
social-media-automation schedule list
# スケジュールのキャンセル
social-media-automation schedule cancel 1
# 定期スケジュールの追加
social-media-automation schedule recurring add --platform x --content "Daily post" --type daily --start-time "09:00"
# 定期スケジュールの一覧
social-media-automation schedule recurring list
# 定期スケジュールの削除
social-media-automation schedule recurring remove 1
テンプレート管理
# テンプレートの作成(変数の自動抽出)
social-media-automation template create --name greeting --platform x \
--content "Hello {{name}}, welcome to {{company}}!"
# テンプレートの一覧表示
social-media-automation template list
# テンプレートの表示
social-media-automation template show 1
# テンプレートの使用(JSON形式で変数を渡す)
social-media-automation template use greeting '{"name":"John","company":"Acme"}' --output
# テンプレートの使用(key=value形式で変数を渡す)
social-media-automation template use greeting "name=Jane company=Acme" --output
# テンプレートからドラフト作成
social-media-automation template use greeting "name=Bob company=XYZ" --save
# テンプレートの削除
social-media-automation template delete 1
タイムライン管理
# ホームタイムラインの取得
social-media-automation timeline home
# ユーザータイムラインの取得
social-media-automation timeline user username
インタラクション
# リプライ
social-media-automation reply <tweet_id> "Great post!"
# リツイート
social-media-automation retweet <tweet_id>
# いいね
social-media-automation like <tweet_id>
# メンションの取得
social-media-automation mentions
認証管理
# 認証状態の表示
social-media-automation auth status
# ログイン
social-media-automation auth login
# ログアウト
social-media-automation auth logout
レート制限の確認
# レート制限の確認
social-media-automation rate-limit
設定の表示
# 設定の表示(機密データは表示されません)
social-media-automation config:show
コマンド一覧
init- 設定の初期化post- コンテンツの投稿draft create- ドラフトの作成draft list- ドラフトの一覧draft show- ドラフトの表示draft edit- ドラフトの編集draft delete- ドラフトの削除schedule- スケジュール管理schedule list- スケジュールの一覧schedule cancel- スケジュールのキャンセルschedule recurring- 定期スケジュール管理template create- テンプレートの作成template list- テンプレートの一覧template show- テンプレートの表示template use- テンプレートの使用template delete- テンプレートの削除timeline- タイムライン管理reply- リプライretweet- リツイートlike- いいねmentions- メンションの取得auth- 認証管理rate-limit- レート制限の確認config:show- 設定の表示
技術スタック
- Python 3.14
- Tweepy (Twitter API v2)
- Pydantic (データ検証)
- Pydantic-Settings (設定管理)
- Typer (CLI)
- Rich (ターミナル出力)
- SQLite (データストレージ)
環境変数
# Twitter/X API Credentials
TWITTER_BEARER_TOKEN=your_bearer_token_here
TWITTER_API_KEY=your_api_key_here
TWITTER_API_SECRET=your_api_secret_here
TWITTER_ACCESS_TOKEN=your_access_token_here
TWITTER_ACCESS_SECRET=your_access_secret_here
# Bluesky Credentials (optional)
BLUESKY_HANDLE=your_handle.bsky.social
BLUESKY_APP_PASSWORD=your_app_password_here
# LinkedIn Credentials (optional)
LINKEDIN_ACCESS_TOKEN=your_access_token_here
# Database
DB_PATH=./data/social_media.db
テスト
# テストの実行
pytest
# カバレッジレポートの生成
pytest --cov=social_media_automation --cov-report=html
現在のテストカバレッジ: 60%
依存関係
- tweepy>=4.14.0
- pydantic>=2.0.0
- pydantic-settings>=2.0.0
- typer>=0.12.0
- rich>=13.0.0
- pyyaml>=6.0.0
- python-dotenv>=1.0.0
開発依存関係
- pytest>=7.4.0
- pytest-cov>=4.1.0
- pytest-mock>=3.12.0
- black>=23.0.0
- mypy>=1.5.0
注意事項
- Twitter APIには有効な認証情報が必要
- APIレート制限に注意してください
- 環境変数または.envファイルで設定を行ってください
ライセンス
MIT