質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Slack

Slackは、Tiny Speckという企業からリリースされたコミュニケーションツールです。GoogleDriveやGitHubなど、さまざまな外部サービスと連携することができます。

Q&A

解決済

1回答

469閲覧

LINE用に組んだフォーム→スプレッド→LINEをそのまま、slack宛に変更したい。

umimuk

総合スコア2

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Slack

Slackは、Tiny Speckという企業からリリースされたコミュニケーションツールです。GoogleDriveやGitHubなど、さまざまな外部サービスと連携することができます。

0グッド

1クリップ

投稿2023/04/03 05:24

実現したいこと

LINE用で用意したが、結果slackでやることになったため、slackへ送るにあたって変更しなけれいけない箇所がわからない。
送った際には以下のような表示になり、空白や0を省きたいです。

[実績報告]
セクション1
質問/回答
セクション2
質問/回答

発生している問題・エラーメッセージ

slackに送ることが成功していない

該当のソースコード

JavaScript

1//spreadsheetからデータを取得 2function myFunction(){ 3 var sheet = SpreadsheetApp.getActiveSheet(); //sheetの指定 4 var row = sheet.getLastRow(); //行数 5 var column = sheet.getLastColumn(); //列数 6 var range = sheet.getDataRange(); //sheetから範囲指定するための準備 7 var message = ""; 8 for (var i = 3; i <= column; i++) { 9 var item = range.getCell(1, i).getValue(); //1行目 10 var value = range.getCell(row, i).getValue(); //最終行 11 12 if (item == "報告対象日") { 13 var date = new Date(value) 14 var weeks = ["日", "月", "火", "水", "木", "金", "土"]; 15 var weekstr = weeks[date.getDay()]; 16 var ymd = Utilities.formatDate(date, "Asia/Tokyo", "MM/dd"); 17 value = ": " + ymd + "(" + weekstr + ")" 18 } else if (item.includes("【") && item.includes("】")) { 19 value = ""; 20 } else { 21 if (value == 0) { 22 continue; 23 } else { 24 item += " / "; 25 } 26 } 27 28 message += "\n" + item + value + "\n"; 29 } 30 SendToLine(message); 31} 32 33 34//LINEに通知 35function SendToLine(message){ 36 var token = '***'; //テスト1 37 var op = 38 { 39 "method" : "post", 40 "Content-Type" : "application/x-www-form-urlencoded", 41 "payload": "message=" + message, 42 "headers":{"Authorization" : "Bearer " + token} 43 }; 44 var res = UrlFetchApp.fetch("https://notify-api.line.me/api/notify",op); 45 Logger.log(JSON.parse(res.getContentText())); //Response 46}

試したこと

とりあえず送られなければ話にならないと思い、ココのコードをそのまま貼り付け、試すもslackを見ても送信されていない

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

参考にされたサイトの中で紹介されているサイト
【簡単!】SlackのIncoming Webhook URLを取得する方法
を参考にSlackのIncoming Webhook URLを取得していることが前提です。

もとのスクリプトのmyFunctionの最後のところの

javascript

1 SendToLine(message);

の行を

javascript

1 // SendToLine(message);//←コメントにする 2 sendSlack(message);

に変更します。
そして、
関数 SendToLine はそのままにしておき、
新たに次の関数をコピペしてurl = のところを取得したWebhookのURLに書き換えます。

javascript

1//Slackに通知 2function sendSlack(message) { 3 const url = 'https://hooks.slack.com/services/xxxxxxxxxxxxxxxxxxxxxxxx';//←Webhook URLに書き換える 4 let data = { 5 "text": message 6 } 7 8 let options = { 9 "method" : "post", 10 "contentType": "application/json", 11 "payload" : JSON.stringify(data) 12 }; 13 14 UrlFetchApp.fetch(url, options); 15}

以上で、
Webhook URLを取得する際に指定したチャンネルにメッセージを送信することができます。

投稿2023/04/03 07:34

YellowGreen

総合スコア731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

umimuk

2023/04/04 00:15

何度もすいません…!本当にありがとうございます! ちゃんとslackに来ました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問