teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

6

2021/08/09 16:48

投稿

退会済みユーザー
answer CHANGED
@@ -23,4 +23,6 @@
23
23
  if (results[0] && results[0].label !=zenkai) {
24
24
  - await axios.post('https://nodered-自分のID.herokuapp.com/receiver', results[0]);
25
25
  + await axios.post('https://nodered-自分のID.herokuapp.com/receiver', results[0].label);
26
- ```
26
+ ```
27
+
28
+ NODE-Red歴1時間くらいなので的外れな回答であればすみません。

5

2021/08/09 16:47

投稿

退会済みユーザー
answer CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  単一の値や一次元配列を渡した場合であっても、GSHEETノード側で自動的に2次元配列に変換してくれます([ソース](https://github.com/sammachin/node-red-contrib-google-sheets/blob/master/gsheet.js#L87-L96))
14
14
  しかし、今回はオブジェクトを渡しているため、オブジェクトを要素とする2次元配列に変換され、それがそのままGoogle spreadsheet APIに渡されてエラーになっているのではないかと思います。
15
- (GSHEETノードのライブラリは、渡されたpeyloadが単一値か、1次元配列、2次元配列のいずれかであるかまでは判定して次元を自動変換するが、その中身(要素)の型までは判定しない)
15
+ (GSHEETノードのライブラリは、渡されたpayloadが単一値か、1次元配列、2次元配列のいずれかであるかまでは判定して次元を自動変換するが、その中身(要素)の型までは判定しない)
16
16
 
17
17
  ・対応案
18
18
  codePenのjavascript下記の行を下記のように直した場合どうでしょうか。

4

2021/08/09 16:46

投稿

退会済みユーザー
answer CHANGED
@@ -10,8 +10,9 @@
10
10
 
11
11
  GSHEETノードの先にあるGoogle spreadsheet APIのupdate関数のvaluesには、文字列・ブール値・数値いずれかを要素とする2次元配列([[~]]を渡さなければなりません。
12
12
 
13
- ただし、単一の値や一次元配列を渡した場合、GSHEETノード側で自動的に2次元配列に変換してくれます([ソース](https://github.com/sammachin/node-red-contrib-google-sheets/blob/master/gsheet.js#L87-L96))
13
+ 単一の値や一次元配列を渡した場合であっても、GSHEETノード側で自動的に2次元配列に変換してくれます([ソース](https://github.com/sammachin/node-red-contrib-google-sheets/blob/master/gsheet.js#L87-L96))
14
14
  しかし、今回はオブジェクトを渡しているため、オブジェクトを要素とする2次元配列に変換され、それがそのままGoogle spreadsheet APIに渡されてエラーになっているのではないかと思います。
15
+ (GSHEETノードのライブラリは、渡されたpeyloadが単一値か、1次元配列、2次元配列のいずれかであるかまでは判定して次元を自動変換するが、その中身(要素)の型までは判定しない)
15
16
 
16
17
  ・対応案
17
18
  codePenのjavascript下記の行を下記のように直した場合どうでしょうか。

3

2021/08/09 16:45

投稿

退会済みユーザー
answer CHANGED
@@ -8,10 +8,10 @@
8
8
  ```
9
9
  というオブジェクトが渡されているためと推測します。
10
10
 
11
- GSHEETノードの先にあるGoogle spreadsheet APIのupdate関数のvaluesには、2次元配列([[〇〇,〇〇,・・・]]渡さなければなりません。
11
+ GSHEETノードの先にあるGoogle spreadsheet APIのupdate関数のvaluesには、文字列・ブール値・数値いずれかを要素とする2次元配列([[]]渡さなければなりません。
12
12
 
13
- ただし、単一の値を渡した場合であってもGSHEETノード側で自動的に2次元配列に変換してくれます([ソース](https://github.com/sammachin/node-red-contrib-google-sheets/blob/master/gsheet.js#L87-L96))
13
+ ただし、単一の値や一次元配列を渡した場合GSHEETノード側で自動的に2次元配列に変換してくれます([ソース](https://github.com/sammachin/node-red-contrib-google-sheets/blob/master/gsheet.js#L87-L96))
14
- しかし、今回はオブジェクトを渡しているため、2次元配列に変換されそのまま渡されてエラーになっているのではないかと思います。
14
+ しかし、今回はオブジェクトを渡しているため、オブジェクトを要素とする2次元配列に変換されれがそのままGoogle spreadsheet APIに渡されてエラーになっているのではないかと思います。
15
15
 
16
16
  ・対応案
17
17
  codePenのjavascript下記の行を下記のように直した場合どうでしょうか。

2

2021/08/09 16:42

投稿

退会済みユーザー
answer CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  GSHEETノードの先にあるGoogle spreadsheet APIのupdate関数のvaluesには、2次元の配列([[〇〇,〇〇,・・・]]が渡されなければなりません。
12
12
 
13
- ただし、単一の値を渡した場合であってもGSHEETノード側で自動的に2次元配列に変換してくれます([ソース](https://github.com/sammachin/node-red-contrib-google-sheets/blob/master/gsheet.js#L87-L96)
13
+ ただし、単一の値を渡した場合であってもGSHEETノード側で自動的に2次元配列に変換してくれます([ソース](https://github.com/sammachin/node-red-contrib-google-sheets/blob/master/gsheet.js#L87-L96)
14
14
  しかし、今回はオブジェクトを渡しているため、2次元配列に変換されずそのまま渡されてエラーになっているのではないかと思います。
15
15
 
16
16
  ・対応案

1

修正

2021/08/09 16:36

投稿

退会済みユーザー
answer CHANGED
@@ -8,14 +8,14 @@
8
8
  ```
9
9
  というオブジェクトが渡されているためと推測します。
10
10
 
11
- GSHEETノードの先にあるGoogle spreadsheet APIのupdate関数のvaluesには、2次元の配列([[〇〇,〇〇,・・・]]が渡されなければなりません。
11
+ GSHEETノードの先にあるGoogle spreadsheet APIのupdate関数のvaluesには、2次元の配列([[〇〇,〇〇,・・・]]が渡されなければなりません。
12
12
 
13
- ただし、単一の値を渡した場合GSHEETノード側で自動的に2次元配列に変換してくれます([ソース](https://github.com/sammachin/node-red-contrib-google-sheets/blob/master/gsheet.js#L87-L96)。
13
+ ただし、単一の値を渡した場合であってもGSHEETノード側で自動的に2次元配列に変換してくれます([ソース](https://github.com/sammachin/node-red-contrib-google-sheets/blob/master/gsheet.js#L87-L96)。
14
- しかし、今回はオブジェクトを渡しているため変換できずそのまま渡されてエラーになっているのではないかと思います。
14
+ しかし、今回はオブジェクトを渡しているため、2次元配列に変換されずそのまま渡されてエラーになっているのではないかと思います。
15
15
 
16
16
  ・対応案
17
17
  codePenのjavascript下記の行を下記のように直した場合どうでしょうか。
18
- (node側、results[0]ではなく、results[0].labelを渡す)
18
+ (node側へ結果を渡す際、results[0]ではなく、results[0].labelを渡す)
19
19
 
20
20
  ```diff
21
21
  // 結果のresultsは配列ですが、先頭に中身があれば以下の処理を実行します