こんにちはRoidです。
実のところ、このブログを開始するのと同じくらいのタイミングで、ちょろっとニュースキュレーションサイトを作ってみているます。自動アップされる記事数が中々多く、Twitter展開するのに苦慮していました。
WordPressにも、新規ポスト投稿時にTwitterに自動投稿できるプラグインがいくつかあります。ただ使用するには、TwitterのAPI開放をしてもらう必要があり、その審査に10日以上かかるということだったので、せっかちな自分は別の方法を探してみました。
IFTTTを使ってブログをTwitterに自動投稿
そこで使えたのが懐かしのIFTTTです。IFTTTは、様々なWebサービスやアプリを組み合わせ、プログラミングなしでも自動化の仕組みが作れるサービスです。基本的な設定は、以下のような大味なUIから接続するサービスを選択していく流れになります。
細かい使い方などは、他の方のブログ記事などでも多く触れられているのでここでは割愛します。
IFTTTの制約条件(Twitter関連)
ただ今回の場合、記事数が多すぎて、すぐにIFTTTからTwitterへの投稿上限に達してしまうことがわかりました。無料プランだと1日25ツイートまで、有料のPROプランにすれば200まで伸びますが、それでも少ないです。
正直なところ、微妙なニュースも収集していたので、刺さりの良さそうなトピックのポストの投稿時だけ投稿できればOKだと思い、PROプランに登録してみました。
IFTTTのプラン | 1日あたりのTweet数上限 | 追加機能 |
---|---|---|
FREE | 25 | – |
PRO | 200 | query(追加情報取得)、filter(実行条件追加) |
filterを使ってTwitterに投稿するブログポストを絞り込む
というわけで早速、Filterを追加する流れを見てみます。まずはトリガーをWordPress、アクションをTwitterに設定します。その上で、その間にあるプラスボタンを押して、「Add filter」を選択します。
選択したら、filterの編集画面が出てくるので、ここにコードを書けば完成です。JavaScriptが使えるので割と自由に条件を指定できます。今回は、「大谷翔平、K室圭、チャンピオンズリーグ、自民総裁選」のいずれかがカテゴリー・タグに含まれる以外はスキップする、という指定にしてみました。
let categoriesText = WordPress.anyNewPostWp.TagsAndCategories;
let regex = /(大谷翔平|小室圭|チャンピオンズリーグ|自民総裁選)/g;
if(!categoriesText.match(regex)){
Twitter.postNewTweet.skip();
}
固有のクラス、属性、メソッドについては入力補助と、エディタの下部に参照が書いてあるので、割とサクサクと打てると思います。(記事用に適当に打ったので、
ちなみに「TagsAndCategories」は、カテゴリーとタグが複数設定してある場合、カンマで接続したStringで返却されます。(自分は勝手にArrayだと盲信していてハマりかけました)
最終的には、以下の設定画面になりますので、保存して終了です。
まとめ
正直なところTwitterのAPI承認を待てば、WordPress上で設定も出来るので外部のサービスは不要なのですが、IFTTTはWP => Twitterだけではなく様々なサービス間の連携にも使えるので、何かしらの参考になれれば幸いです。