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

回答編集履歴

1

コード追記

2018/05/17 04:54

投稿

papinianus
papinianus

スコア12705

answer CHANGED
@@ -16,4 +16,34 @@
16
16
  一方で、どうしても改行でなければならない具体的な要因や制限がないのであれば、slackの入力を自分でハンドリングできる形式にするということもできるのではないかと思います。改行が唯一のネックなのであれば(そして入力値が一定の範囲内なのであれば"Name@xxx改TD@2:00:00"など(改)=改行や(区)=区切りを使うとかいった解決も可能かと思います。
17
17
  (詰まったときは、"改行がなければできるのか"、を考えてみてください。改行がなくてもできないのであれば、本当に解決すべき問題は改行ではありません。逆に改行がなければできるなら、"なぜ改行が必要なのか"を考えてみてください。必要なのであればその理由を示してください)
18
18
  - どんな言葉でも反映されてしまう。
19
- ◆これは1つめの・の「特定の言葉を条件判定にしたい」ということと同じではないでしょうか?
19
+ ◆これは1つめの・の「特定の言葉を条件判定にしたい」ということと同じではないでしょうか?
20
+
21
+ --追記
22
+ slackで
23
+ ```
24
+ NAME@xavier
25
+ TD@12:23:56
26
+ ```
27
+ という入力がなされるとして(rの後に改行があることを前提とします)、slackからoutgoingwebhookが飛び
28
+ ```javascript
29
+ function doPost(e) {
30
+ var text = e["parameter"]["text"];
31
+ var value = text.split("\n")[0].replace("NAME@", ""); //改行で区切ってその0番目を取り、そこから"NAME@"を消す
32
+ var value2 = text.split("\n")[1].replace("TD@", "");
33
+ value = value.replace(/\s/g, "+")
34
+ value2 = value2.replace(/\s/g, "+")
35
+ var ss_url = "スプレのURL";
36
+ var ss = SpreadsheetApp.openByUrl(ss_url);
37
+ var sh = ss.getSheets()[1];
38
+ var row = sh.getLastRow();
39
+ var next_row = row + 1;
40
+ if(text.indexOf("NAME@") != -1){
41
+ sh.getRange("A" + next_row).setValue(value);
42
+ }
43
+ if(text.indexOf("TD@") != -1){
44
+ sh.getRange("B" + next_row).setValue(value2);
45
+ }
46
+ }
47
+ ```
48
+ というコードで受ければ、A1,B1セルにそれぞれ[xavier, 12:34:56]と入ると思います。
49
+ (Slackからの送信はテストしていませんが、3行目以降相当のコードは検証しています。