ブログを書いたらSNSに自動投稿されるようにした
公開日:22:30
更新日:08:44
ブログ記事を書いたあと、手動でX(Twitter)とBlueskyに投稿するのが面倒だった。
記事を公開すると自動的にSNSにシェアされるようにしたいと思い、GitHub Actionsで自動投稿の仕組みを作った。
初回設定したコミットはこちら
その後細かく改良している (src)
main ブランチに記事をpushすると、X と Bluesky に自動投稿される。
両方のプラットフォームへの投稿が成功したら、記事のfrontmatterに sns_shared: true を追記してコミットする。
ライブラリ選定が面倒だったので標準の Node.js で動くように Vibe Coding で作った。
セットアップ備忘録
X (Twitter) API キーの取得方法
- X Developer Console にアクセス
- X アカウントでログイン
- 「Apps」→「+ Create App」
- 各種シークレットを取得 (OAuth 1.0 Keys のものを使用)
- 「Credits」→「Purchase credits」で最低 $5 チャージしておく
Bluesky アプリパスワードの取得方法
- Bluesky にアクセス
- 自分のアカウントでログイン
- 設定を開く
- プライバシーとセキュリティを選択
- アプリパスワードを選択
- アプリパスワードを追加をクリック
GitHub Secrets への登録
- GitHub リポジトリページを開く
- 「Settings」タブをクリック
- 左メニューの「Secrets and variables」→「Actions」を選択
- 「New repository secret」をクリック
- 各 Secret を登録:
| Secret名 | 説明 |
|---|---|
X_API_KEY | X API Key (Consumer Key) |
X_API_SECRET | X API Secret (Consumer Secret) |
X_ACCESS_TOKEN | X Access Token |
X_ACCESS_SECRET | X Access Token Secret |
BLUESKY_IDENTIFIER | Blueskyハンドル (例: username.bsky.social) |
BLUESKY_APP_PASSWORD | Bluesky App Password |
学んだこと
- X の投稿には $0.01 かかる
- 最初試したら
402 Payment Requiredが返ってきた - https://docs.x.com/x-api/getting-started/pricing
- 無料枠がなくなって完全に従量課金制になったっぽい?
- 【2026年1月最新版】X APIでPOST投稿する方法|新規アカウントは$5課金が必須
- 最初試したら
- Bluesky の URLやハッシュタグを有効にするにはリッチテキストで扱う必要がある
まとめ
この記事を作って試して、実際に動いていることを確認した。
これで記事を書くことに集中でき、投稿し忘れもなくなった。