/mastter

Mastodonに投稿した内容を自動的にTwitterに再投稿するアプリ

Primary LanguageC#MIT LicenseMIT

mastter

概要

このアプリケーションは、Mastodonに投稿した内容を自動的にTwitterに再投稿するコマンドラインアプリケーションです。Dockerを利用して常時起動します。

Twitterの無料APIは投稿制限が厳しいため、このアプリでは1プロセスにつき1ユーザーしか利用できません。

必要なもの

  1. Docker実行環境
  2. Mastodonアカウント
  3. Twitterアカウント
  4. TwitterとMastodonのAPIキー(個別に申請)

APIキーについて

  • MastodonのAPIキーには以下の権限が必要です:
    • read:accounts
    • read:statuses
  • TwitterのAPIキーには以下の権限が必要です:
    • Read and write

インストールと実行

Docker Runを利用した起動

初回起動時にはTwitterのアクセストークンがありません。このため、アプリケーションはURLを発行し、以下のコマンドを用いてDockerコンテナを起動します。
このとき、コマンドに-itオプションを付けてコンテナプロセスと対話します。

docker run -it \
    -e MastodonUrl="<your-mastodon-url>" \
    -e MastodonToken="<your-mastodon-token>" \
    -e TwitterConsumerKey="<your-twitter-consumer-key>" \
    -e TwitterConsumerSecret="<your-twitter-consumer-secret>" \
    -e TwitterBearerToken="<your-twitter-bearer-token>" \
    ghcr.io/freeesia/mastter:latest

起動後、表示されるURLからTwitterにログインし、表示されるPINをアプリケーションに入力します。
これにより、Twitterのアクセストークンとアクセストークンシークレットが生成されます。

2回目以降の起動時には、初回起動時に生成されたアクセストークンとアクセストークンシークレットを以下のように設定して起動します。
このときには-dオプションを使用してバックグラウンドで実行します。

docker run -d \
    -e MastodonUrl="<your-mastodon-url>" \
    -e MastodonToken="<your-mastodon-token>" \
    -e TwitterConsumerKey="<your-twitter-consumer-key>" \
    -e TwitterConsumerSecret="<your-twitter-consumer-secret>" \
    -e TwitterBearerToken="<your-twitter-bearer-token>" \
    -e TwitterAccessToken="<your-twitter-access-token>" \
    -e TwitterAccessTokenSecret="<your-twitter-access-token-secret>" \
    ghcr.io/freeesia/mastter:latest

Docker Composeを利用した起動

2回目以降の起動時にDocker Composeを利用したい場合、以下のようにdocker-compose.ymlファイルを設定します。

mastter:
  image: ghcr.io/freeesia/mastter:latest
  environment:
    MastodonUrl: "<your-mastodon-url>"
    MastodonToken: "<your-mastodon-token>"
    TwitterConsumerKey: "<your-twitter-consumer-key>"
    TwitterConsumerSecret: "<your-twitter-consumer-secret>"
    TwitterBearerToken: "<your-twitter-bearer-token>"
    TwitterAccessToken: "<your-twitter-access-token>"
    TwitterAccessTokenSecret: "<your-twitter-access-token-secret>"

docker-compose.ymlファイルを設定したら、以下のコマンドでDockerコンテナを起動します。

docker-compose up -d

これでアプリケーションは起動し、あなたのMastodonアカウントに新しい投稿があるたびに、同じ内容をTwitterに再投稿します。