実現したいこと
- Googleスプレッドシートで日付ごとに整理された表をGoogle App Scriptで読み込み、対応する日付の10時台にSlackに投稿したい
前提
Slackに毎日(または指定した日付で)、Googleスプレッドシートの内容を自動投稿するシステムを作っています。
スプレッドシートの表は以下のような形式です。
日付 | 花の名前 | 学名 | 花言葉 |
---|---|---|---|
2/1 | チューリップ | Tulipa | 「愛の告白」「美しい瞳」 |
2/2 | バラ | Rosa | 「愛」「美」 |
以降、1か月分のデータが続きます。
スプレッドシートの表は毎月手動作成で、「23年2月」「23年3月」といった具合にタブで月を分けていきます。
スプレッドシートA列の日付に対応した行の内容をSlackに自動投稿します。
Slack AppsのライブラリはGASに導入済みです。
GASのトリガーを時間主導型で、毎日10-11時に発動するように設定して、テスト稼働したところ、
以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
TypeError: slack.authorize is not a function at postToSlack(コード:3:9)
該当のソースコード
JavaScript
1function postToSlack() { 2 var slack = SlackApp.create('hogehoge'); 3 slack.authorize('hogehoge'); 4 var channelName = '#hogehoge'; // 投稿するチャンネル名を設定 5 var sheetId = "hogehoge"; // スプレッドシートのIDを設定 6 var sheetName = "23年4月"; // シート名を設定 7 var timeZone = "Asia/Tokyo"; // タイムゾーンを設定 8 9 var ss = SpreadsheetApp.openById(sheetId); 10 var sheet = ss.getSheetByName(sheetName); 11 var range = sheet.getDataRange(); 12 var values = range.getValues(); 13 var today = new Date(); 14 15 for (var i = 1; i < values.length; i++) { 16 var date = values[i][0];//A列の値 17 var name = values[i][1];//B列の値 18 var title = values[i][2];//C列の値 19 var quote = values[i][3];//D列の値 20 if (date.getFullYear() === today.getFullYear() && date.getMonth() === today.getMonth() && date.getDate() === today.getDate()) { 21 var body = "<@here> 今日の花言葉 \n" + "【花で彩る、日々の暮らし】\n" + "リラックスしたいときやインスピレーションがほしい時、少し幸せになれる花言葉をご紹介! \n"; 22 var message = name + ":" + title + "(" + quote + ")"; 23 slack.postMessage(channelName, message); 24 break; 25 } 26 } 27}
試したこと
- slack.authorizeの一文を丸ごと削除
補足情報
- Slackのカスタムインテグレーションで、Webhookを利用した実装は避けたいです。
(Slack側の推奨方法がSlack Appsを利用した実装のため。)








回答1件
あなたの回答
tips
プレビュー