#Blueskyfeedbotとは何か?GitHubActions経由でBlueskyにRSSフィードを投稿するbot #一30
https://github.com/marketplace/actions/feed-to-bluesky
GitHub Actions 経由で Bluesky に RSS フィードを投稿するボット「Blueskyfeedbot」の使い方を解説します。
準備
-
Bluesky アプリパスワードの取得:
- Bluesky の設定ページ (
) にアクセスし、新しいアプリパスワードを作成します。https://bsky.app/settings/app-passwords - パスワード名は任意ですが、分かりやすい名前を付けてください。
- セキュリティ上の理由から、このパスワードは一度しか表示されません。 紛失しないように安全な場所に保管してください。紛失した場合は、新しいパスワードを生成する必要があります。
- Bluesky の設定ページ (
-
GitHub リポジトリの作成:
- 新しい GitHub リポジトリを作成します。
-
シークレットの設定:
- リポジトリの設定ページ ([https://github.com/){YOUR_REPO}/settings/secrets/actions/new) にアクセスし、以下のシークレットを追加します。
BLUESKY_USERNAME
: Bluesky のユーザー名 (例: username.bsky.social)BLUESKY_PASSWORD
: 手順 1 で取得したアプリパスワード
- リポジトリの設定ページ ([https://github.com/){YOUR_REPO}/settings/secrets/actions/new) にアクセスし、以下のシークレットを追加します。
ワークフローファイルの作成
.github/workflows/blueskyfeedbot.yml
という名前のファイルを作成し、以下の内容を記述します。
<!-- end list -->
name: フィードボット
on:
スケジュール:
# これは 5 分ごとに実行されます。https://crontab.guru/ を使用して変更します
- クロン: '*/5 * * * *'
ジョブ:
rss-to-bluesky:
runs-on: ubuntu-latest
ステップ:
- 名前: キャッシュキーを生成
使用法: actions/github-script@v6
id を: キーを生成します
と:
スクリプト: |
core.setoutput ('cache-key', new Date().valueOf())
- 名前: キャッシュを取得
使用法: actions/cache@v3
と:
パス: ${{ github.workspace }}/blueskyfeedbot
キー: feed-cache-${{ steps.generate-key.outputs.cache-key }}
キーを復元します: フィードキャッシュ-
- 名前: GitHub
使用法: 'joschi/blueskyfeedbot@v1'
と:
# これは公開したいRSSフィードです
rssフィード: https://www.githubstatus.com/history.rss
# Bluesky(ハンドルバー)に投稿されたステータスのテンプレート
テンプレート: '{{item.title}} {{item.link}}'
# これはあなたのサービスのURLです(オプション)
サービス-url: https://bsky.social
# Blueskyのユーザー名です(例: username.bsky.social)
ユーザー名: ${{ secrets.BLUESKY_USERNAME }}
# 先ほど作成したアプリのパスワードです
パスワード: ${{ secrets.BLUESKY_PASSWORD }}
# これは、上記のキャッシュパスを使用して、キャッシュファイルへのパスです
キャッシュファイル: ${{ github.workspace }}/blueskyfeedbot/cache.json
- 変更をコミットして公開します。
ステータステンプレート
ステータス テンプレートでは、Handlebars テンプレートエンジンを使用できます。
アクションは、FeedData
(フィールド: feedData
) と現在の FeedEntry
(フィールド: item
) のインスタンスをテンプレートに渡します。
export interface FeedEntry {
リンク?: 文字列;
タイトル?: 文字列;
説明?: 文字列;
発行?: 日付;
}
export interface フィードデータ {
リンク?: 文字列;
タイトル?: 文字列;
説明?: 文字列;
発電機?: 文字列;
言語?: 文字列;
発行?: 日付;
エントリー?: 配列<FeedEntry>;
}
補足
blueskyfeedbot.yml
のcron
設定を変更することで、実行間隔を調整できます ( を参照)。https://crontab.guru/ rssフィード
には、投稿したい RSS フィードの URL を指定します。テンプレート
には、Bluesky に投稿するステータスのテンプレートを記述します。Handlebars の記法を使って、FeedData
とFeedEntry
のフィールドを参照できます。サービス-url
はオプションです。キャッシュファイル
は、前回の投稿日時を保存するために使用されます。
この手順に従って設定することで、Blueskyfeedbot が GitHub Actions 経由で RSS フィードを Bluesky に自動投稿するようになります。
一般的な方法: IFTTT や Zapier などの連携サービス
一般的な方法: IFTTT や Zapier などの連携サービス
IFTTT (If This Then That) や Zapier などの連携サービスを利用すると、RSS フィードの更新をトリガーにして Bluesky に投稿を自動化できます。これらのサービスは、ノーコードで簡単に設定できるため、プログラミングの知識がなくても利用できます。
設定方法 (IFTTT の場合):
IFTTT に登録し、Bluesky と RSS のサービスを連携させます。
「If This Then That」のレシピを作成します。
「This」には RSS サービスを選択し、更新を監視するフィード URL を指定します。
「That」には Bluesky サービスを選択し、投稿する内容のテンプレートを設定します。
レシピを保存し、有効化します。
高度な方法: GitHub Actions やスクリプト
GitHub Actions や Python などのスクリプトを使用すると、より柔軟な方法で RSS フィードを Bluesky に投稿できます。
GitHub Actions を使用する場合:
Bluesky のアプリパスワードを取得します。
GitHub リポジトリを作成し、必要なシークレット (Bluesky のユーザー名とアプリパスワード) を設定します。
GitHub Actions のワークフローファイルを作成し、RSS フィードの取得と Bluesky への投稿処理を記述します。
ワークフローをスケジュール設定し、定期的に実行されるようにします。
Python スクリプトを使用する場合:
Bluesky の API クライアントライブラリをインストールします。
RSS フィードを取得し、Bluesky に投稿するスクリプトを作成します。
スクリプトを定期的に実行するように設定します (cron など)。
どちらの方法を選ぶべきか:
手軽に自動化したい場合: IFTTT や Zapier などの連携サービスがおすすめです。
より柔軟な設定や高度な処理を行いたい場合: GitHub Actions やスクリプトがおすすめです。
その他:
Bluesky の API ドキュメントや、RSS フィードを Bluesky に投稿するサンプルコードなどを参考にすると、より詳しく知ることができます。
Bluesky の投稿内容や頻度によっては、Bluesky の利用規約に違反する可能性があるため、注意が必要です。
ご自身のスキルや目的に合わせて、最適な方法を選択してください。
コメント
コメントを投稿