
前回、デジタル迷子おばさんシリーズとしてこの記事を書きました。
https://www.naomi-sensei.com/n/nf728fe9ba52e
何も知らない素人がMakeを丸腰で触るとどうなるか、を書いたわけです。
この記事の最後は・・・
とりあえず、明日自動投稿がうまくいくのか、行方を見守りたいです。
実は余り信じていませんwww
でした。
そう、やっぱり失敗でしたwwww
今回は何がいけなかったのかを明らかにし、しっかり情報を書いておきます。
相談相手をCursorに変えた。
まず、相談相手をGeminiからCursorに変えました。
理由①思考モードにしてたら切れたw
理由②課金しているし、プログラミングが得意っぽいイメージがした。
これが当たりだったかもしれない。
でも説明が一気に流れてしまって情報量多すぎて余計に混乱。
なので、Cursorに新規ファイルでわかりやすくまとめてもらいました。
以下、Cursorのまとめですが、私のコメント入れますw
Cursorのまとめてくれた手順
Makeでスプレッドシートからランダムに1件SNS投稿自動化完全手順
概要
Googleスプレッドシートの未投稿データからランダムに1件を選び、SNS(Buffer経由)へ自動投稿し、投稿済みとして更新する手順です。初心者向けに省略なしで記載しています。
事前準備(スプレッドシート)
以下の列構成を前提にします。
-
A列:記事タイトル
-
B列:URL
-
C列:空欄(予備)
-
D列:投稿済みフラグ(空=未投稿/済=投稿済み)
-
F列:ランダム値 =RAND() 【私】これにしたら数字になった。なんで?www放置したけどw
シナリオ全体の流れ
-
Scheduler(毎日1回実行)
-
Google Sheets:Search Rows(通常版)
-
Buffer:Create a status update
-
Google Sheets:Update a row
図解(シンプル版)
[Scheduler]
|
v
[Google Sheets: Search Rows]
| 取得: D列が空の行 / F列でランダム抽選 / 1件
v
[Buffer: Create a status update]
| 投稿: 「一言 + タイトル + URL」
v
[Google Sheets: Update a row]
| 更新: D列=済, E列=now
1. Scheduler(毎日1回の自動実行)
【私】この順番ではありません。めっちゃ不親切な順番です。正確に言えば、2番のモジュールを作れば結果的に左下に時計のマークのアイコンがくっつくので、その時計マークを設定すればいいです。つまり時計マークがスケジューラーになります。なんで1番を「スケジューラー」にするんでしょう。不思議でなりません。
-
モード:Every day
-
時間:任意(例:09:00)

2. Google Sheets:Search Rows(通常版)
設定
-
Search Method:Select from My Drive
-
Spreadsheet:対象のスプレッドシート
-
Sheet Name:記事リストのシート
-
Table contains headers:Yes
-
Column range:`A-F`(F列まで含める) ※私はA-Z
Filter(未投稿だけ取得)
-
左の列:`投稿済み (D)`
-
演算子:`Not equal to`
-
値:`済`
Order by(ランダム抽選)
-
Order by:`ランダム (F)`
-
Sort order:`Descending`
-
Limit:`1`

3. Run once(出力サンプルを作る)
Search Rows の出力を作るために必須です。
-
シナリオ画面に戻る
-
Run once をクリック
-
Search Rows が 1件以上返っていることを確認
※ Search Rows が0件だと、後続の「Row number」が空になりエラーになります。
【私】すみません。ここ覚えてないですwやってないかもw

4. Buffer:Create a status update

Text欄(投稿本文)
以下の形にします。固定文+タイトル+URLです。
今日のおすすめ👇
{{記事タイトル}}
{{URL}}
実際の操作

-
Text欄をクリック
-
「今日のおすすめ👇」を手入力
-
改行
-
右側のデータツリーから
`Search Rows → 記事タイトル(A)` を挿入 -
改行
-
`Search Rows → URL(B)` を挿入
5. Google Sheets:Update a row

Row number(最重要)
-
Row number に
`Search Rows → Row number` を入れる
※「bundle」全体を入れるのはNG。必ず Row number を選ぶ。
Values(更新する列)
-
投稿済み (D):`済`
-
日時 (E):`now`
A/B/Cは空でOKです。
大事なところだけ貼り付けます。

6. テスト時の注意(重要)
【私】ここ超重要!!!ここをやってなかったのでエラー出ました。
便宜上のテスト手順
-
テスト時は便宜上、D列に「済」を全行に入れ、空欄の行を1つだけ作成してから実行すると確実です。
-
テスト終了後は、D列をすべて空欄に戻して運用してください。
7. よくあるエラーと対処
DuplicateDataError(同じ内容を投稿しようとした)
Buffer側の仕様です。以下のどれかで解決します。
-
投稿文の先頭に一言を追加(例:「今日のおすすめ👇」)
-
しばらく時間を空けて再実行
-
別の記事が選ばれるようにD列の空欄を増やす
Row number が空で失敗する
-
Search Rows が 0件 のときに起きます
-
D列が空の行を1件以上用意してから Run once を実行してください
8. 本番運用のポイント
-
D列が空の行が「未投稿」
-
投稿が成功するとD列が「済」になり、次回は選ばれない
-
これで「1日1回ランダム投稿」が安定して動きます。
なんとおおおおおお!できたああああああああああああああ!

一回Run once押してエラー出なかったのでOK!
SNS見るとできてる!
以下の部分をやったので、できたといってもいいでしょう。
誰も教えてくれず、Cursorにしつこくきいてみると、そういうことをおしえてくれました。

丸腰でもできたぞ!
次に何の自動化をしようか、考えてますwwww
その前に・・・・
もちょっと勉強してから挑んだ方が良いかもしれませんw



コメント