ワイヤード・パンチ

Integromatを利用して、wordpressの新規投稿を自動的にマストドンで通知する方法。

IntegromatというWEBサービスを利用すれば、1つのWEBサービスで何かしら行動を起こしたときに、自動的に他のWEBサービスへ連動させる処理を作ることができます。

すでに似たようなサービスとしてIFTTTなどがあるようですが、概要については各自で検索をお願いします。

それはさておき、いつも記事を上げるたびに、わざわざ手書きでマストドンにお知らせを投稿するのが面倒だったので、それを自動化してみます。

広告

最強のWebサービス連携ツールIntegromatを使って、Mastodonに無限の可能性を

今回の記事を作成するにあたって、上記サイトをおおいに参考にさせていただきました。

また、上記のおかげでIntegromatを始めとした連携サービスの存在を知ることができました。ありがとうございます。

なお、会員登録の流れは省略します。

シナリオが開始される周期を決定する。

ここでは一連の自動処理のことを、シナリオと呼ばれます。

まずシナリオの新規作成画面を開くと、中央に時計がくっついたはてなマークがあるはずです。

どんな時間になったときに、どんな処理から始めるかというのを決めていくことになります。

まずは時計の部分をクリックして、シナリオの自動実行の周期を決めます。

「Run Scenario」という項目では、何分ごとや何日ごと、あるいは特定の曜日や日時だけなど、実行周期を決めることができます。

今回は15分ごとにしたいので、「Run Scenario」からは「At regular intervals」を選びます。

これを選んだとき、すぐ下に「Interval」という入力ボックスがあるので、「15」を入力し、右下の「OK」ボタンを押します。

なお、本当は即座に実行が望ましいのですが、残念ながら最低でも15分からなので、今回は15にしておきました。

WordPressの新規投稿を検知するための処理。

実行周期の次は、処理の開始条件を設定していきます。

今度は時計以外の部分をクリックすることで、開始条件となるWEBサービスを選択することになります。

多数のサービスが出て来るので、この中からWordpressを探し出すか、一番下の検索ボックスからWordpressと入力して絞り込みしましょう。

次はWordpressでどうしたいかを選択する画面になります。

今は開始条件として設定したいので、「TRIGGERS」の中から「Watch posts」を選び、投稿に関する条件ということにします。

どのwordpressサイトを見たいのか設定します。

今はまだ何もサイトを登録していないので、プルダウンからは何も選べません。

Add」ボタンをクリックすると、新規サイト登録することができます。

すぐ横にウインドウが現れるので、「Connection name」には任意の名前、「Web address」「Username」「Password」にはその通り、URLとユーザ名とパスワードを入力します。

なお、Wordpressに「Google Authenticator」というプラグインを導入して、二段階認証を有効にしている場合、いつも使っているパスワードを入れても登録することができません。

対処方法はまだ別の記事で解説しますが、特にプラグインを入れてないなら、このまま読み進めてください。

サイトの登録を終えたら、どのような投稿を対象にするか選択します。

「Post type」は投稿タイプとなり、今回は標準の投稿対応である「標準」にします。

「Status」は公開の状態であり、「Publish」を選ぶと公開されている記事のみ対象となります。

「Watch」はおそらく、「新規記事を作成したとき」あるいは「新規投稿と既存記事の編集どちらも対象」を選ぶ項目だと思われます。

今回、既存記事の編集は対象にしないので、「Only new posts」を選んでおきます。

最後に「Maxinum number of returned posts」は、一度の処理で何件の投稿を行うかの数を入力することになります。

最初に指定した周期の間に、たとえば3件以上新規記事を作ったとしても、ここが2だった場合、マストドンでトゥートするのは先に作った2件のみになります。

それよりもあとの記事は、次回実行時に繰り越される。ということになります。

どのような投稿を対象にするか設定したあとは、いつからこの処理を始めるかを設定することになります。

「From now on」にした場合は、このシナリオを作成後に投稿した記事から。

「Posts from after a specitic date」の場合は、すぐ下に日付入力欄が出てきて、その日以降の記事から対象となります。

「All posts」の場合は、そのとおり最初から現在までのすべての記事です。

「Select the first post」の場合は、すぐ下に記事一覧が出てきて、その記事およびそれ以降の記事が対象です。

今回の場合、過去の記事はすべて手動でトゥート済みだったので、以降の記事だけ対象にしようと「From now on」にしたかったのですが、なぜか正常に動作しなかったので、「Select the first post」にしておきました。

原因は不明。わかる方はマストドンにご一報を。

以上の作業で、Wordpressに新規投稿があればシナリオが開始される、ということになりました。

開始条件が満たされたらマストドンに投稿する。

開始条件があるだけでは、実質何も起こりません。

WordPressから拾ってきた値をもってマストドンでどうしたいか、というのを設定していかなければなりません。

何もないところで右クリックするとメニューが現れるので、そこから「Add a module」を選択し、先程のwordpressとつなげるための新たな処理を作成することになります。

先程のwordpressのときと同様に、多数のサービスから使いたいものを選択することになりますが、残念ながらここにマストドンはありません。

そこで今回は「HTTP」を選択します。

次は「Make a request」を選択。

様々な値を入力する画面になるので、URLには「https://(マストドンのドメイン)/api/v1/statuses」を入力し、Methodは「POST」を選択。

「POST」を選ぶとすぐ下に「Body Type」が現れるので、「Application/x-www-form-urlencoded」を選択します。

ここで、Integromatはいったんこのまま置いといて、マストドンの管理画面から新規アプリの作成画面を開きましょう。

名前やURLは任意のものを入力し、リダイレクトURIは特に変更せず、アクセス権もそのまま「read」「write」「follow」のチェックが入ったままにして、送信ボタンをクリックします。

このアプリが、Integromatとマストドンをつなぐために必要なものになります。

マストドン上で新規アプリが作成できたら、それの編集画面を開くことで、アクセストークンという英数字の羅列が確認できるようになっています。

アクセストークンをコピーして、Integromatに戻りましょう

アクセストークンの上2つにも英数字の羅列はありますが、それらは必要ありません。

Integromatの先程の画面に戻ってきたら、「Add item」をクリックすると「Key」と「Value」を入力することになります。

今回は3つのアイテムが必要となり、以下の組み合わせで追加しましょう。

  • key: access_token
  • value: 先程コピーした英数字の羅列。

  • key: status

  • value: トゥートしたい内容。鉛筆マークから、wordpressの値取得もできます。

  • key: visibility

  • value: トゥートの公開状態です。今回は未収載を表す「unlisted」にしておきます。

これで設定は以上です。

あとは動作確認ですが、最低でも15分に1回の実行では、テストに時間がかかって仕方ありません。

よって、左下にある「Run once」をクリックすることで、即座にシナリオを実行することができます。

とりあえずwordpressに何か新記事を追加して、「Run once」を実行してみましょう。

wordpressとhttpともに、緑のチェックマークが入れば成功です。

マストドンにもちゃんとトゥートされているはずです。

最後に、左上の矢印画面から画面を切り替えて、切り替わった先の画面で右上のスイッチをONにしておきましょう。

これがないと、時間が来ても実行されません。