Twitter の投稿を IFTTT で Mastodon へ転送するためのMastodonのAccessTokenを取得するスクリプト

  • 0
    Like
  • 0
    Comment

    小ネタです。

    TwitterのツイートをMastodonに流すためにTwitter の投稿を IFTTT で Mastodon へ転送する。を参考にさせてもらったのですが、MastodonのAccessTokenを発行する手順がちょっと煩雑だったので、スクリプト化してみました。

    必要なもの

    • curl
    • jq

    macならHomebrewでインストールできます。

    brew install curl jq
    

    スクリプト

    MASTODON_URL=<MastodonのURL(例:https://mstdn.jp)>
    MASTODON_EMAIL=<登録したメールアドレス>
    MASTODON_PASS=<パスワード>
    
    RESULT=`curl -X POST -d "client_name=From Twitter&redirect_uris=urn:ietf:wg:oauth:2.0:oob&scopes=write&website=${MASTODON_URL}" -Ss ${MASTODON_URL}/api/v1/apps`
    ACCESS_ID=`echo $RESULT | jq -r .client_id`
    ACCESS_SECRET=`echo $RESULT | jq -r .client_secret`
    
    ACCESS_TOKEN=`curl -X POST -d "scope=write&client_id=${ACCESS_ID}&client_secret=${ACCESS_SECRET}&grant_type=password&username=${MASTODON_EMAIL}&password=${MASTODON_PASS}" -Ss ${MASTODON_URL}/oauth/token | jq -r .access_token`
    echo "Access Token: ${ACCESS_TOKEN}"
    
    # テスト投稿(必要ならば)
    curl -X POST -d "access_token=${ACCESS_TOKEN}&status=This is a test toot via OAuth&visibility=private" -Ss ${MASTODON_URL}/api/v1/statuses
    

    MASTODON_XXXの環境変数(3つ)を変更して、ターミナルにコピペすればAccessTokenが取得できるはずです。
    これをITFFFのWebhookに設定するaccess_tokenに指定します。

    TwitterのツイートをMastodonに流すのは、できれば本家でサポートしてほしい機能ですね。普通の人にはハードルが高すぎます。