質問編集履歴

3

新しくやってみたことを追記

2024/07/05 05:09

投稿

yahata
yahata

スコア2

test CHANGED
File without changes
test CHANGED
@@ -167,3 +167,95 @@
167
167
  ```
168
168
 
169
169
 
170
+ ### 追記
171
+ wix側で、ペイロードの構造をシンプルにしました。しかし、やはりなぜかJSONの要素を取得することができません。
172
+ ```google apps svript
173
+ function doPost(e) {
174
+ try{
175
+ if (e == null || e.postData == null || e.postData.contents == null) return;
176
+
177
+ var params = JSON.stringify(e.postData.contents);
178
+ console.log(params);
179
+
180
+ // JSON文字列をオブジェクトに変換
181
+ let jsonObject;
182
+ try {
183
+ jsonObject = JSON.parse(params);
184
+ console.log('JSON parsed successfully:', jsonObject);
185
+ } catch (e) {
186
+ console.error('Failed to parse JSON:', e);
187
+ }
188
+
189
+ // jsonObject自体を確認
190
+ console.log('jsonObject:', jsonObject);
191
+
192
+ // dataプロパティが存在するか確認
193
+ if (jsonObject && jsonObject.data) {
194
+ // staff_member_nameを取得
195
+ const staffMemberName = jsonObject.data.staff_member_name;
196
+ console.log('Staff Member Name:', staffMemberName);
197
+ } else {
198
+ console.error('data property is undefined');
199
+ }
200
+
201
+ return ContentService.createTextOutput("Received and processed webhook data.");
202
+ }catch(error){
203
+ Logger.log("Error: " + error.message);
204
+ return ContentService.createTextOutput("Error processing webhook data.");
205
+ }
206
+ }
207
+ ```
208
+
209
+ ログは以下の通りです。
210
+ ```
211
+ "{\"data\":{\"staff_member_name\":\"山田 \"}}"
212
+ JSON parsed successfully: {"data":{"staff_member_name":"山田 "}}
213
+ jsonObject: {"data":{"staff_member_name":"山田 "}}
214
+ data property is undefined
215
+ ```
216
+
217
+ ### さらにやってみたこと
218
+ 山田の右に謎の空白があったので、削除してみましたが、それでもやはりdataプロパティは見つからないようです。
219
+ ```
220
+ function doPost(e) {
221
+ try{
222
+ if (e == null || e.postData == null || e.postData.contents == null) return;
223
+
224
+ var params = JSON.stringify(e.postData.contents);
225
+ params = params.replace( " ", "" );
226
+ console.log(params);
227
+ params = params.substring(1);
228
+
229
+ // JSON文字列をオブジェクトに変換
230
+ let jsonObject;
231
+ try {
232
+ jsonObject = JSON.parse(params);
233
+ console.log('JSON parsed successfully:', jsonObject);
234
+ } catch (e) {
235
+ console.error('Failed to parse JSON:', e);
236
+ }
237
+
238
+ // jsonObject自体を確認
239
+ console.log('jsonObject:', jsonObject);
240
+
241
+ // dataプロパティが存在するか確認
242
+ if (jsonObject && jsonObject.data) {
243
+ // staff_member_nameを取得
244
+ const staffMemberName = jsonObject.data.staff_member_name;
245
+ console.log('Staff Member Name:', staffMemberName); // 出力: サニ
246
+ } else {
247
+ console.error('data property is undefined');
248
+ }
249
+
250
+ return ContentService.createTextOutput("Received and processed webhook data.");
251
+ }catch(error){
252
+ Logger.log("Error: " + error.message);
253
+ return ContentService.createTextOutput("Error processing webhook data.");
254
+ }
255
+ }
256
+ ```
257
+
258
+
259
+
260
+
261
+

2

間違えて実行されていなかったコードを書いてしまっていたが、実際に実行されていたコードに書き直した。

2024/07/04 11:58

投稿

yahata
yahata

スコア2

test CHANGED
File without changes
test CHANGED
@@ -12,22 +12,17 @@
12
12
  以下のコードでwebhookを受け取り、スプレッドシートに内容を記録しました。
13
13
  ```google apps script
14
14
  function doPost(e) {
15
- try {
16
- // 受信したデータをログに出力
15
+ if (e == null || e.postData == null || e.postData.contents == null) return;
16
+
17
- var postData = JSON.parse(e.postData.contents);
17
+ var obj = JSON.parse(e.postData.contents);
18
- Logger.log("Received Data: " + JSON.stringify(postData));
18
+ var now = new Date();
19
+ var array = [];
20
+ array.push(now, obj);
19
21
 
20
- // スプレッドシートにend_dateを追加
21
- var ss = SpreadsheetApp.getActive();
22
+ var ss = SpreadsheetApp.getActive();
22
- var sheet = ss.getSheets()[0];
23
+ var sheet = ss.getSheets()[0];
23
- sheet.appendRow(e.postData.contents);
24
24
 
25
- // 応答
26
- return ContentService.createTextOutput("Received and processed webhook data.");
27
- } catch (error) {
25
+ sheet.appendRow(array);
28
- Logger.log("Error: " + error.message);
29
- return ContentService.createTextOutput("Error processing webhook data.");
30
- }
31
26
  }
32
27
  ```
33
28
  スプレッドシートには以下のように表示されます。見たことのない形式なので、どうやって内容を取り出せばいいかわかりません。
@@ -172,22 +167,3 @@
172
167
  ```
173
168
 
174
169
 
175
- ###以下追記です
176
- ###「該当のソースコード」が間違っていました。実際に実行されていたのはこれです。
177
- ```google apps script
178
- function doPost(e) {
179
- if (e == null || e.postData == null || e.postData.contents == null) return;
180
-
181
- var obj = JSON.parse(e.postData.contents);
182
- var now = new Date();
183
- var array = [];
184
- array.push(now, obj);
185
-
186
- var ss = SpreadsheetApp.getActive();
187
- var sheet = ss.getSheets()[0];
188
-
189
- sheet.appendRow(array);
190
- }
191
-
192
- ```
193
-

1

誤ったコードを書いていた

2024/07/04 11:57

投稿

yahata
yahata

スコア2

test CHANGED
File without changes
test CHANGED
@@ -171,3 +171,23 @@
171
171
  contact.phone Contact phone
172
172
  ```
173
173
 
174
+
175
+ ###以下追記です
176
+ ###「該当のソースコード」が間違っていました。実際に実行されていたのはこれです。
177
+ ```google apps script
178
+ function doPost(e) {
179
+ if (e == null || e.postData == null || e.postData.contents == null) return;
180
+
181
+ var obj = JSON.parse(e.postData.contents);
182
+ var now = new Date();
183
+ var array = [];
184
+ array.push(now, obj);
185
+
186
+ var ss = SpreadsheetApp.getActive();
187
+ var sheet = ss.getSheets()[0];
188
+
189
+ sheet.appendRow(array);
190
+ }
191
+
192
+ ```
193
+