ノンプログラマーがMastodon BotをIFTTTとかRSSあたりで作ったドン

僕はエンジニアでもプログラマーでもありませんがQiitadonの中を見たくてQiitaアカウント作ったので、そのついでにQiitaへ記事を1本書いておきます。

RSS更新をIFTTTで取得してMastdonへ自動投稿するbotを作る

↑これを作ります。
参考にすればツイッター連携でも何でも作れるはず。

マストドンは、自動投稿とか嫌うインスタンスや住民が多いので、Twitterみたいな使い方はしない方がいいんじゃないかなーと個人的には思いますが、地域インスタンスにその地域メディアの更新情報とか流してローカルタイムラインでワイワイやったりするのに使えます。
宣伝とかしまくるのはオススメしませんし、止めてほしいドン。

さて、僕はノンプラグラマーなのでコード書かずにbot作ります。
前提としてIFTTT が何だか分かる、それなりに操作くらいはできるという方なら誰でも作れます。多分。

1. Mastodonのアクセストークン取得する

いきなりアクセストークンとか言われると何のことやら分からず怖いですが、Mastodonのインスタンスに外部からのアクセス許可証的なものをいただくんだと思ってください。

本当はCurlコマンドとかでアレコレするらしいのですが、僕はそういうの怖いんでブラウザでフォーム埋めるだけでアクセストークンが取得できる @takahashim さんのAccess Token Generator for Mastodon APIを使います。

https://takahashim.github.io/mastodon-access-token/

項目 入力するもの
Mastodon URL トゥートしたいインスタンスのURLを入力
Client Name この連携アプリの名前です。適当に決めます。(例:Rss2Mstdn)
Web site tootにつくリンクらしいけど、設定は任意なので僕は空欄にしときます
Scopes 権限です。トゥートする(書き込み)ので write にしておきます。
  • 上記のように埋めて「Publish access_token」ボタンをポチっとするとMastodonのインスタンスにログインが求められるのでトゥートするアカウントでログインします
  • アクセストークンが表示されます
  • showボタンを押して、取得した「access_token」をどこかにメモっておきます

これでMastodonのアクセストークン取得は完了。

2. IFTTTにアプレット作る

アプレットっていうのは「RSSの更新をとって」「Mastodonにトゥートする」みたいなのを自分で設定した簡易アプリみたいなもののことです。

とりあえず下記の通りにすれば何となくわかるはず。
(UIの表記とか変わるかもしれないけど、そこらへんは上手く感じとってください)

https://ifttt.com

  • IFTTTにアクセスしてログイン(IFTTTアカウントは作成してね) 
  • My Applets > New Applets と移動
  • 「if✚this then that」と書かれてるとこの「✚this」をポチッとな
  • RSS更新でトゥートするなら「RSS Feed」を選びます。Twitterでも何でもお好きなのを。
  • RSS更新でトゥートする場合は「New feed item」を選択して取得するRSS FeedのURLを入れます。まあ、ここらへんはよしなに。「Create trigger」をクリックしてトリガーセット完了。

トリガー(何があったら動くか)がセットされたので、
次にアクション(トリガーが起動したら何をするのか)を決めます。

  • 「if then ✚that」と書かれてるとこの「✚that」をポチッとな
  • 検索するか選択するかして「Maker Webhooks」を探して選択します。
  • 「Make a web request」をクリック
項目 入力するもの
URL https://■マストドンのドメイン■/api/v1/statuses
Method POSTを選択
Content Type application/x-www-form-urlencodedを選択
Body アクセストークンとトゥートする内容が入る。下記を参考に。

Bodyには、下記のような感じで入力します。
よく分からないという人は、下記のグレーの部分をコピーして■だけ書き換えれば動くと思います。

access_token=■&visibility=public&status=【ブログ更新】{{EntryTitle}} {{EntryUrl}}

  • 上記のaccess_token=■....は事前に取得したアクセストークンに書き換える
  • 【ブログ更新】の部分は適当に書き換えるなり消すなりしてください。
  • 言うまでもないと思うけど、 {{EntryTitle}} はRSSから取得したタイトル
  • {{EntryUrl}}はRSSから取得したURLです

  • 色々終わったら「Create Action」的なボタンを押して確認などする

  • 「Finish」ボタンもポチっとなしておく

3. Feedから適切にトゥートされてるか確認

おわり。

繰り返すけれど

マストドンに宣伝トゥートしまくるbotはいらない。
ローカルタイムラインを楽しく盛り上げるために使ってほしいドン。