半自動イベントポータルブログ「コレイコーひろしま」ができるまで。Instagram連携ができない間、投稿文を書くPythonはChatGPTに書いてもらっていた。結局どんなZapierフローになったのかまとめる。
0.Instagram投稿用画像を作成してメディアライブラリにアップする
画像の自動生成は難しいということがこれまでのチャレンジでよくわかったので、Instagram投稿用の画像だけは手動で予め作成しておいて、Zapierで拾ってこれるようにブログのメディアライブラリにまとめてアップしておいた。例えば10/4からのイベント情報を伝える画像のファイル名は「241004」という風に日付に紐付くファイル名にすることで、Zapierが該当する画像を自動で見つけられるようにしている。
1.毎週木曜18時に記事を作る
スケジュールをトリガーにして、毎週木曜18時に記事を作ることにした。週末の予定を立てるならだいたいこれぐらいに投稿するのがいいのかなと思ってこの時間にした。
このとき、マイページから自分の生活圏のタイムゾーンに設定しておかないといけない。タイムゾーンを東京に設定して、トリガーをテストしてからPublishしないと、日本時間で設定したとおりに動いてくれない。
最初、タイムゾーンを設定し忘れてUTC時間で動作してしまい、タイムゾーンを東京に設定したあともトリガーをテストしてからPublishしてなかったため、やはりUTC時間で動作してしまった。
2.日時の整形
週末から来週の木曜までに開催されるイベントを抽出するために、トリガーの木曜日の翌日(start_date)と翌週の木曜日(end_date)の日時データを出力してもらう。また、Instagramで投稿する画像を見つけるためにファイル名も出力してもらう。
3.WordpressのJWTトークンを得る
WebhookでJWTトークンを得る。
4.記事リストを取得
JWTトークンで記事リストを得るのだが、その際に週末から翌木曜までの記事に絞って抽出するようにしている。記事リストは開催日が先のものから並んでいるが、Instagramに投稿する本文では週末から来週に向けて古い順に並んでほしいので、取得した記事リストを並び替えるようにしている。
5.画像URLを取得
JWTトークンでメディアライブラリの中から、2で整形したファイル名に該当する画像を探してもらう。これで画像のダイレクトURLがわかり、Instagramに投稿する画像を指定できる。
6.週末からのイベント整形文
先ほど得た記事リストから下のような形式で本文を作る。ただしカテゴリはカテゴリIDでリストになっているので、JWTトークンを使ってカテゴリライブラリを呼び出し、カテゴリIDに一致するカテゴリ名を出力するようにしている。
【カテゴリ】
(日付)(イベント名)
会場:(会場)
またイベントのループ部分とは別にヘッダー部分とフッター部分を書き足せるようにして、ヘッダー部分にはイベント詳細へのリンク、フッター部分にはタグを加えるようにした。
7.Instagramに投稿
最大の壁だった投稿。IDはInstagramIDをカスタム値として直接入力して、5で得た画像と6で得た本文で投稿する
8.Facebookページに投稿
同じようにIDはFacebookページのIDをカスタム値として直接入力して投稿する。こちらはURLを指定するところがあり、そこに画像URLを指定すれば画像が表示されるのだが、ブログのURLを指定してブログへ誘導するようにした。
同様に週明けの月曜日に先週1週間の間に集めた新着イベントを投稿するZapをつくり、週に2回、自動でSNSに投稿することができるようになった。
<自動化ツールでブログを作成シリーズ>
- 自動化ツールを使うためにはサーバー設定の見直しが必要
- 没になったアイデアたち
- ChatGPTがプラグインの提案とPHPコードを書いてくれた
- 全くわからないPythonコードを書いてもらう
- jsonを使ってZapierからブログ投稿
- Cocoonのphp構造を理解してカスタムテンプレートをつくる
- Googleフォームに入力したらWordPressに自動投稿してくれるZapierフローのまとめ
- ZapierでSNSへ定期的に自動投稿
- 週末に土日から来週のイベントをまとめてSNSに投稿するZapierフローのまとめ
- ZapierからACFフィールドへの投稿
- ChatGPTと一緒にブログを作って感じたこと
コメント