質問編集履歴
3
新しくやってみたことを追記
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
間違えて実行されていなかったコードを書いてしまっていたが、実際に実行されていたコードに書き直した。
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
|
-
|
17
|
+
var obj = JSON.parse(e.postData.contents);
|
18
|
-
|
18
|
+
var now = new Date();
|
19
|
+
var array = [];
|
20
|
+
array.push(now, obj);
|
19
21
|
|
20
|
-
// スプレッドシートにend_dateを追加
|
21
|
-
|
22
|
+
var ss = SpreadsheetApp.getActive();
|
22
|
-
|
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
|
-
|
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
誤ったコードを書いていた
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
|
+
|