質問編集履歴

5

検索結果を全て、表示したい

2019/08/23 01:46

投稿

sakurase
sakurase

スコア14

test CHANGED
File without changes
test CHANGED
@@ -1,111 +1,77 @@
1
- ```gas
1
+ ```ここに言語を入力
2
-
3
-
4
2
 
5
3
  function doPost(e){
6
4
 
5
+ const trial = "a";
7
6
 
7
+ const slack = e ? e.parameter.text.substr(4): trial ;//slackからの内容
8
8
 
9
- var slack = e.parameter.text;//slackからの内容
9
+ const mySheet = SpreadsheetApp.openById("スプレッドシート 名").getSheetByName("シート1");//シートを取得
10
10
 
11
- Logger.log(slack);
11
+ const dat = mySheet.getDataRange().getValues();
12
12
 
13
- var mySheet = SpreadsheetApp.openById("スプレッドシート 名").getActiveSheet();//シートを取得
13
+ const i = dat.length;
14
14
 
15
- var maxRow=mySheet.getDataRange().getLastRow();//シートの使用範囲のうち最終行を取得
15
+ // Logger.log(i);
16
16
 
17
- var maxColum = mySheet.getDataRange().getLastColumn();//シートの使用範囲のうち最終列を取得
17
+ var s = 0;
18
18
 
19
- var values = SpreadsheetApp.getActiveSheet().getSheetValues(1, 1, maxRow, maxColum );//シートの中身を全て取得
19
+ for(s==0; s<i; s++){
20
20
 
21
-
21
+ // Logger.log(dat[s][0]);
22
22
 
23
- for (var i = 1; i < maxRow; i++){
23
+ var ss = dat[s][0] +'';
24
24
 
25
- // Logger.log(values[i][0]);
25
+ Logger.log(ss);
26
26
 
27
-
27
+ if(ss.match(slack) ){
28
28
 
29
- if(values[i][0].indexOf(slack) !== -1){
29
+ Logger.log(dat[s]);
30
30
 
31
- Logger.log(values[i]);
31
+ var message = dat[s];
32
-
33
- postSlack3(values[i]);
34
32
 
35
33
  }
34
+
35
+ postSlack3(message);
36
+
37
+ }
38
+
39
+ //Logger.log(message);
36
40
 
37
41
 
38
42
 
39
43
  }
40
44
 
41
- }
42
-
43
-
44
-
45
45
 
46
46
 
47
47
  function postSlack3(text){
48
48
 
49
- var url = "webhookのURL";
49
+ const url = "webhookのURL";
50
50
 
51
- var options = {
51
+ const options = {
52
52
 
53
- "method" : "POST",
53
+ "method" : "POST",
54
54
 
55
- "headers": {"Content-type": "application/json"},
55
+ "headers": {"Content-type": "application/json"},
56
56
 
57
- "payload" : '{"text":"' + text + '"}'
57
+ "payload" : '{"text":"' + text + '"}'
58
58
 
59
- };
59
+ };
60
60
 
61
- UrlFetchApp.fetch(url, options);
61
+ UrlFetchApp.fetch(url, options);
62
62
 
63
63
  }
64
64
 
65
+ ```
66
+
67
+ 発見したこと
68
+
69
+ ・二次元配列を使用した場合「indexOf」という関数は使えないということがわかった。
70
+
71
+ ・Outgoing WebhooksでPostされる個別の投稿データの中身はを勘違いしていたこと。
65
72
 
66
73
 
67
74
 
75
+ 助けて欲しいところ
68
76
 
69
- ```
70
-
71
- ![イメージ説明](cf587d5f193d63397f53e58078efcc39.png)
72
-
73
- 基本的な流れBotに投げた言葉doPostで受け取り、検索したい言葉をスプレッドシート 検索対象の列ら検索し、その結果をretrurnしてくれるBotを作りとおもってます。
77
+ このままだと「a」という文字を検索したい場合、スプレッドシートの最終行しとってこれないため。「a」が2個3個あった場合、その全ての検索結果を返すことができないです。検索結果を全て返してくれる作りにするにはどうすればいいでしょうか
74
-
75
-
76
-
77
- なぜだかうまく、うごきません。doPostだとLogger.logでログを取得することができずどういう風な値をうけとっているかわかっていないです。
78
-
79
-
80
-
81
- 動くようにするにはどのように、操作すればいいでしょうか。
82
-
83
-
84
-
85
- 追記
86
-
87
- papinianusさんの回答にそって、やりました。
88
-
89
- 動作確認用のフレーズを入れた場合では、動きました。しかし、Botにメッセージを投げても、スプレッドシート の内容を取得してそれのレスポンスは返ってきませんでした。
90
-
91
- しかも、何度か試していたら、「TypeError: オブジェクト 1 で関数 indexOf が見つかりません。」というエラーが出力されるようになりました。特にpapinianusさんの回答をいじったりしていないのですが、謎です。
92
-
93
-
94
-
95
- 追記1
96
-
97
- e.parameter.textではなく、e.parameter.user_nameに変更し。スプレッドシート のほうにusernameを書き込んだところ、無事にBotからの返答がございました。
98
-
99
- const foundの前までは正常に動くみたいです。const foundが悪さをしているのかもしれないです
100
-
101
-
102
-
103
- 追記2
104
-
105
- スプレッドシート のA列に数字がふくまれているとエラーになるみたい。実際の想定では、文字列しかいれないので単純に自分のミス申し訳ないです
106
-
107
-
108
-
109
- 追記3
110
-
111
- ボットに単語をなげると、反応するようになった。しかし、notfoundしか返してくれない。

4

追記3

2019/08/23 01:46

投稿

sakurase
sakurase

スコア14

test CHANGED
File without changes
test CHANGED
@@ -103,3 +103,9 @@
103
103
  追記2
104
104
 
105
105
  スプレッドシート のA列に数字がふくまれているとエラーになるみたい。実際の想定では、文字列しかいれないので単純に自分のミス申し訳ないです
106
+
107
+
108
+
109
+ 追記3
110
+
111
+ ボットに単語をなげると、反応するようになった。しかし、notfoundしか返してくれない。

3

追記2

2019/08/09 08:14

投稿

sakurase
sakurase

スコア14

test CHANGED
File without changes
test CHANGED
@@ -97,3 +97,9 @@
97
97
  e.parameter.textではなく、e.parameter.user_nameに変更し。スプレッドシート のほうにusernameを書き込んだところ、無事にBotからの返答がございました。
98
98
 
99
99
  const foundの前までは正常に動くみたいです。const foundが悪さをしているのかもしれないです
100
+
101
+
102
+
103
+ 追記2
104
+
105
+ スプレッドシート のA列に数字がふくまれているとエラーになるみたい。実際の想定では、文字列しかいれないので単純に自分のミス申し訳ないです

2

追記1

2019/08/08 10:23

投稿

sakurase
sakurase

スコア14

test CHANGED
File without changes
test CHANGED
@@ -89,3 +89,11 @@
89
89
  動作確認用のフレーズを入れた場合では、動きました。しかし、Botにメッセージを投げても、スプレッドシート の内容を取得してそれのレスポンスは返ってきませんでした。
90
90
 
91
91
  しかも、何度か試していたら、「TypeError: オブジェクト 1 で関数 indexOf が見つかりません。」というエラーが出力されるようになりました。特にpapinianusさんの回答をいじったりしていないのですが、謎です。
92
+
93
+
94
+
95
+ 追記1
96
+
97
+ e.parameter.textではなく、e.parameter.user_nameに変更し。スプレッドシート のほうにusernameを書き込んだところ、無事にBotからの返答がございました。
98
+
99
+ const foundの前までは正常に動くみたいです。const foundが悪さをしているのかもしれないです

1

追記

2019/08/08 05:32

投稿

sakurase
sakurase

スコア14

test CHANGED
File without changes
test CHANGED
@@ -79,3 +79,13 @@
79
79
 
80
80
 
81
81
  動くようにするにはどのように、操作すればいいでしょうか。
82
+
83
+
84
+
85
+ 追記
86
+
87
+ papinianusさんの回答にそって、やりました。
88
+
89
+ 動作確認用のフレーズを入れた場合では、動きました。しかし、Botにメッセージを投げても、スプレッドシート の内容を取得してそれのレスポンスは返ってきませんでした。
90
+
91
+ しかも、何度か試していたら、「TypeError: オブジェクト 1 で関数 indexOf が見つかりません。」というエラーが出力されるようになりました。特にpapinianusさんの回答をいじったりしていないのですが、謎です。