半自動イベントポータルブログ「コレイコーひろしま」ができるまで。何度も何度も壁があったが、ようやくGoogleフォームに入力したらWordpressに自動投稿してくれるところまで完成したので、どんなZapierができたかまとめる。
1.Googleフォームに新しい回答があったとき
ここで最初に入力するデータはこれ。
- イベント名
- イベント詳細へのURL
- 開催開始日
- 開催終了日
- 開催時刻
- 終了時刻
- 主催者
- 会場
- イベント概要
- アイキャッチ画像URL(著作権の問題から結局使ってない)
- ジャンル(カテゴリーで利用)
- エリア(タグで利用、広島市周辺、備後地域、県北地域の3つにした)
2.WordPressのJWTトークンを得る
Webhookを使ってPOSTリクエストでJWTトークンを得る。
3.画像をWordPressにサイドロード
Googleフォームにアイキャッチ画像URLの指定がある場合、JWTトークンを使ってメディアライブラリに画像をサイドロードして、メディアIDを返すPythonコードを動かしている。著作権の問題から結局使ってないが、URLの指定がない場合はFalseを返して、次のコードで利用するようにしている。
4.アイキャッチ画像の指定
3でサイドロードされた画像がある場合はそのメディアIDを返す。ない場合はGoogleフォームで選択したジャンル(カテゴリー)に基づき予めメディアライブラリにアップしておいた対応する画像のメディアIDを返す。
5.カテゴリIDの検索
Googleフォームで選択したジャンル(カテゴリー)とエリアについて、JWTトークンを使ってカテゴリ一覧とタグ一覧をそれぞれ呼び出し、一致するカテゴリーやタグがあれば、そのカテゴリーIDやタグIDを返す。
もし一致しなければ新しくカテゴリーやタグを作ることにしているが、ジャンルもエリアも選択式にしているし、Wordpress側で選択肢と同じ名前のカテゴリーとタグを用意しているので不一致することはない。
6.日付の整形
開催開始日と終了日、開催時刻と終了時刻をもとに、開催期間が1日か複数か、また月をまたぐかといった条件ごとに表記方法を変えて整形してもらうコード。
カード形式で表示する開催日時は短い方がいいので、1日の場合は時間まで書くけど、複数日の場合は日にちしか書かないといった、時間付きのデータと日にちだけのデータを返すようにしている。
7.下書きで記事を投稿
Webhookを使ってJWTトークンを使って記事を投稿する。
WordPressのビジュアルエディターで一旦完成記事を作ったあとにコードエディターにして得られたHTMLを型枠として、Googleフォームに入力された情報を本文に流し込む。
またアイキャッチ画像、カテゴリ、タグはそれぞれWordpress内のメディアID、カテゴリID、タグIDを指定しないといけないので4と5で得られたIDを入力している。
イベントの開催日順に記事が並ぶように、投稿日はイベント開催日とする。通常、未来の日付の投稿日にすると予約投稿になってしまうが、予約投稿も公開になるコードをfunctions.phpに追記して(これもChatGPTに教えてもらった)これを回避している。
いきなり記事を公開してしまってもいいのだが、送られた投稿にもう一手間必要なこともあるので、記事は下書き状態で投稿して最終確認してから公開するようにしている。
8.イベントをGoogleカレンダーに登録
画面に収まりきらないので見えていないが、このあとイベントをGoogleカレンダーに登録するようにしている。1日のイベントか複数日のイベントかで条件分岐し、1日のイベントの場合は開始時刻と終了時刻も登録し、複数日開催のイベントの場合は終日予定で登録するようになっている。
これでイベントを見つけてから記事作成するまでのハードルがぐっと下がった。新聞を見たり、SNSを見たりしていると毎日、あ、こんなのあるんだってイベントが目に入ってくるので、朝のルーチンとしてイベントを入力するようになった。
<自動化ツールでブログを作成シリーズ>
- 自動化ツールを使うためにはサーバー設定の見直しが必要
- 没になったアイデアたち
- ChatGPTがプラグインの提案とPHPコードを書いてくれた
- 全くわからないPythonコードを書いてもらう
- jsonを使ってZapierからブログ投稿
- Cocoonのphp構造を理解してカスタムテンプレートをつくる
- Googleフォームに入力したらWordPressに自動投稿してくれるZapierフローのまとめ
- ZapierでSNSへ定期的に自動投稿
- 週末に土日から来週のイベントをまとめてSNSに投稿するZapierフローのまとめ
- ZapierからACFフィールドへの投稿
- ChatGPTと一緒にブログを作って感じたこと
コメント