Blog

Zapierを使ってRSSフィードの更新をトリガーにしたTwitterへの自動投稿機能を作ってみた

こちらは2023年7月に投稿された記事です。
2023年9月以降、ZapierのTwitter連携機能は使用できなくなりましたのでご注意ください。
https://help.zapier.com/hc/en-us/articles/18657531069965
ZapierのTwitter連携機能の代替として使用できる機能を実装しました。
以下の記事で紹介しています。
ZapierでX投稿するAPIを呼び出して結果をSlackに通知してみた
API GatewayとLambdaでX投稿するAPIを作ってみた
LambdaでX APIを呼び出してみた

はじめに

こんにちは。ニフティ株式会社の並木です。
今回は、Zapierを使ってRSSフィードの更新をトリガーにしたTwitterへの自動投稿機能を作ってみましたので、その方法について紹介いたします。

背景

ブログとTwitterの連携機能が元々用意されていたのですが、そちらが使用できなくなってしまい、ある時期からブログの更新情報をTwitterに手動で投稿していました。
しかし、手作業だとミスする可能性がある&手間もかかるため、RSSフィードの更新をトリガーにして自動化できないかという話になり、Zapierを使って自動化することになりました。

Zapierとは?

Zapierとは、複数のアプリを連携し、タスクを自動化するツールです。
今回自動化したいタスクは以下の通りです。

①ブログの更新を検知したい
②Twitter投稿用のタグを作りたい
 ・ブログについているタグと同じタグをTwitterでも付けたい
 ・ブログについているタグに半角スペースが入っている場合、Twitterでは取り除きたい
③Twitter投稿用のタグに「#」を付けたい
④以下の形式でTwitterに文章を投稿したい

ブログを更新しました! 今回の記事は「〇〇」です。
https://engineering.nifty.co.jp/blog/xxxxxxx
#タグ #タグ #タグ

①ブログの更新を検知したい

トリガーの設定をします。
Appは「RSS by Zapier」、Eventは「New Items in Multiple Feeds」を選択します。
FeedsURLsには、RSSフィードURLを設定します。

②Twitter投稿用のタグを作りたい

ブログについているタグを取得し、半角スペースが入っている場合は取り除きます。
Appは「Formatter by Zapier」、Eventは「Text」、Transformは「Replace」を選択します。

Inputで「Raw Category」を選択すると、ブログについているタグを取得できます。
半角スペースの除外をしたいので、Findに「[:space:]」を入力し、Replaceは空のままにします。

③Twitter投稿用のタグに「#」を付けたい

②で作成したTwitter投稿用のタグに「#」を付け、タグとタグの間に半角スペースを入れます。
Appは「Code by Zapier」、Eventは「Run Python」を選択します。
今回は「Run Python」を選択しましたが、「Run Javascript」を選択すればJavascriptでコードを書くこともできます。

Input Dataの右側の入力ボックスに②で作成したデータを入れ、左側の入力ボックスにキー名を入れます。(以下画像ではキー名を「original_data」としましたが、どんな名前をつけても良いです)
Input Dataを用意することで、Codeの中でそれを取り出して使うことができます。

②で作成したTwitter投稿用のタグに「#」を付け、タグとタグの間に半角スペースを入れる、という処理をPythonで書きます。
できあがったデータ(コード内にある「result」)に対して、「tags」というキー名を付けます。(キー名はどんな名前をつけても良いです)
「output」という辞書型変数に、上記のキー名とデータを設定しておくと、ここで作成したデータを後続の処理で取り出すことができます。

Code by Zapierにおけるデータの渡し方(=「Input Data」及び「output」の使い方)については、公式ドキュメントに詳細が載っています。
https://zapier.com/blog/code-by-zapier-guide/

④Twitterに文章を投稿したい

ブログのタイトル、ブログのURL、③で作成したタグを埋め込み、Twitterに投稿します。
Appは「Twitter」、Eventは「CreateTweet」、Accountで連携したいTwitterのアカウントを選択します。

MessageにTwitterに投稿する文章を入力します。
ブログのタイトル、ブログのURL、③で作成したタグを、文章の中に埋め込んでいきます。
「Should Shorten URLs?」で、URLを短縮化するかどうかを選択することができます。
「false」を選択すると、URLは短縮されずそのまま表示されます。

以上の設定で、RSSフィードの更新をトリガーにしたTwitterへの自動投稿を実現することができました!

感想

Zapierを使用することで、おおむねノーコードで作成できたので、やりたいことを楽に実現することができました。
苦労した点は、③で使用した「Code by Zapier」の書き方について解説されている日本語の記事を探すことができず、「Input Data」及び「output」の使い方を理解するのに時間がかかったことです。
今後Zapierの機能を使う時は、無理に日本語の記事を探すのではなく、困ったらまずは公式ドキュメントを参照しようと思いました。

ニフティでは、
さまざまなプロダクトへ挑戦する
エンジニアを絶賛募集中です!
ご興味のある方は以下の採用サイトより
お気軽にご連絡ください!

ニフティに興味をお持ちの方は
キャリア登録をぜひお願いいたします!

connpassでニフティグループに
参加いただくと
イベントの
お知らせが届きます!