Contentful にコンテンツが追加されたらツイートする by IFTTT(ノーコード)
TL:DR
ContentfulでIFTTTが用意したWebhookを叩いてツイートします。 (Zapierの方が簡単ですが、個人開発ではWebhookが無料で利用できるIFTTTがオススメです)
手順
- IFTTTのワークフローを設定する
- ContentfulでWebhookを叩く
IFTTTのワークフローを設定する
特に難しいことはなく、IFTTTで Webhook → Twitterの連携を設定します。
ツイートの文章はIFTTT側に入れないのがポイントです。
Contentful以外のサービスからもWebhook経由でツイートしたい場合があるのを見越して、ワークフローを他のサービスと共用にするためです(IFTTTの無料枠が3枠なので節約するに越したことはない)
要するに、IFTTTはあくまでTwitterに付随するWebhookとして使います。
2. ContentfulでWebhookを叩く
IFTTTのWebhookエンドポイントにクセがあるので注意です。 ポイントは2点。
- Webhookのエンドポイントはワークフローの画面ではなく、プロフィール > My Services > Webhookから確認する。
- ContentfulのContent Typeは
application/json
に設定する。 - ツイートの文面をContentfulのWebhook側に埋め込む。
Content Typeについて、Zapierの場合はデフォルトの "application/vnd.contentful.management.v1+json"
でも受け付けてくれます。優しいですね。
ツイートの文面のPayloadはこんな感じです。
実験したところ改行コード(\n
)はツイートにも反映されました。ありがたい。
{ "value1": "{ /payload/fields/title/en-US }\n新しい記事を公開しました!" }
それからWebhookの発火タイミングですが、ユースケース次第ではあるものの「記事が投稿された場合に発火」ならEntryの Publishだけにチェックすれば良さそうです。
デバッグ時には何度もコンテンツをPublishする必要がありますが、記事のステータスを Unpublish → Publish に切り替えれば何度でも投稿できます。楽ですね。
まとめ
TwitterにWebhookを生やす感覚でIFTTTを使っていこう、という話でした。