TypeError: Cannot read properties of undefined (reading ‘postData’)

上記ブログを参考にChatGPTをLINEで利用できる機能をGAS(Google Apps Script)で作ろうとをしたところ以下のエラーが出ました。
TypeError: Cannot read properties of undefined (reading 'postData')
doPost @ コード.gs:13
エラー元のコードは以下。
const json = JSON.parse(e.postData.contents);
せっかくなのでchatGPTでエラーを聞いてみたところ解決せず。ここで逆にこじらせてしまった(ここまで自分でほぼコード読んでいない)
結論
GAS上で「実行」をしたときに出るエラーで、実装したら普通に動くので問題なし。
なんで?
まず大前提としてネット上にあるLINE返信botのコードは多くの場合「LINEで投稿されたタイミングで発動」するように書かれています。
const json = JSON.parse(e.postData.contents);
上記のエラー元のコードはLINE上で投稿された際の「投稿内容」に対する処理を行うコードなんですが、GAS上で「実行」だけしても肝心の投稿が存在しないので投稿内容が読み取れません!というエラーでした。
つまり上記のコードのままでも他のコードや設定が合っていれば、実装時には「投稿しさえすれば」問題なく動作します。
補足。毎回デプロイしよう
他に私がミスった個所は、GASのデプロイのし忘れ。またデプロイ後のURLをLINEのMessaging API設定に更新し忘れです。
コードを変えたら必ずデプロイしましょう。
デプロイしたらURLが新しくなるので、毎回Messaging APIに設定し直しましょう。

ChatGPTは過去の会話を記憶していますが、ChatGPTのAPI(GPT3.5)は会話の履歴を記憶しないのでとてもかわいいです。
記憶してほしい場合は以下のようにGAS上でその仕組みを書かなければいけません。実際には今までの会話の履歴をプロンプトに入れ込むという形式になるので、基本的にはトークンは増えます。

反省
エラーの内容をChatGPTに聞いたところ「ああ、それね。ここが間違ってるよ」(実際には間違っていない)とか指摘されてから逆に難航したので、やはり万能ではありませんね。(まずは自分でコード読め)