実現したいこと
・スプシからカレンダー自動作成(成功)
・自動作成した旨をslackの特定のチャンネルに自動投稿(今ココ)
・自動投稿した旨をスプシに入力
困っていること
・自動作成した旨を、slackの「特定のチャンネル」に自動投稿できない
(my_slackbotへの投稿ならできた)
今ある材料
投稿したいチャンネルのSlackIDはわかっています。これを指定する方法が間違っているのだと思うのですが、
エラーは出ないものの、投稿されない状態です。
https://mahan88.slack.com/messages/CGXNS98LQ
該当部分のコード
/* カレンダーへイベントを登録する /
function getsheet() {
/-前準備-*/
//シートの項目を以下変数定義
var sht, i, eventday, eventname, place,start, end, added, addedslack;
//shtを定義
sht = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("カレンダー");
//シートの2行目〜最終行まで処理を繰り返す
for(i = 2; i <= sht.getLastRow(); i++) {
/-前準備ここまで-/
/--スプレッドシートの値を取得して変数へ格納--/
//i行1列目の値(イベント日)をeventdayへ格納
eventday = sht.getRange(i, 1).getValue();
//開始日をUtilities.formatDateでフォーマットしてbへ格納
var b = Utilities.formatDate(eventday,"JST","yyyy/MM/dd");
//i行2列目の値(イベントの名前)をeventnameへ格納
eventname = sht.getRange(i,2).getValue();
//i行3列目の値(イベントの場所)をplaceへ格納
place = sht.getRange(i,3).getValue();
//i行4列目の値(開始時刻)をstartへ格納
var starttime = sht.getRange(i,4).getValue();
var H = starttime.getHours();//starttimeの時間を取得してHへ格納
var M = starttime.getMinutes();//starttimeの時間を取得してMへ格納
//new Dateメソッドで開始日時「yyMMdd hh:mm」をstartへ格納
var start = new Date(b+" "+H+":"+M);
//i行5列目の値(終了時刻)をendへ格納
var endtime = sht.getRange(i,5).getValue();
var H1 = endtime.getHours();//endtimeの時間を取得してH1へ格納
var M1 = endtime.getMinutes();//endtimeの分を取得してM1へ格納
//new Dateメソッドで終了日時「yyMMdd hh:mm」をendへ格納
var end = new Date(b+" "+H1+":"+M1);
/--カレンダーへ登録--/
//i行6列目の値(イベント登録有無)をaddedへ格納
added = sht.getRange(i,6).getValue();
//addedの値が空白だったらカレンダー登録を実行
if(added == "") {
Cal = CalendarApp.getCalendarById('*******@*****.com');//<---ここを自分のgmailアドレス入れてます
//指定のカレンダーIDへイベント登録
Cal.createEvent(eventname,start,end,{location:place});//createEvent(タイトル、開始日時、終了日時、オプション)
//カレンダー登録が終わったイベントのaddedへ「登録完了」を記入
sht.getRange(i,6).setValue("登録完了");
} //ifを閉じる
} //forを閉じる
} //functionを閉じる
var token = 'xoxp-378845188965-378482081860-579451696117-24eb2*******************';
// slackAppインスタンスを取得
var slackApp = SlackApp.create(token);
// slackのチャンネル指定
var channel = PropertiesService.getScriptProperties().getProperty('お休み連絡網');
// slack送信時のタイトルを入れておく
var bot_title = 'お休み申請';
// slack送信時の画像URLを入れておく(「FLAT ICON DESIGN」さんの画像をアイコンとして利用しています)
var icon_url = 'http://flat-icon-design.com/f/f_object_100/s512_f_object_100_0bg.png';
// slackを送る関数を作る(トリガーから実行時間を指定)
sht = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("カレンダー");
for(i = 2; i <= sht.getLastRow(); i++) {
addedslack = sht.getRange(i,7).getValue();
var name = sht.getRange(i, 2).getValue();
var eventday = sht.getRange(i, 1).getValue();
var b = Utilities.formatDate(eventday,"JST","yyyy/MM/dd");
function postSlack(text) {
getsheet() ;
// もしaddedslackが空白だったら
if(addedslack == "") {
// my_slackbotにメッセージを送信する
var url = "https://***************/messages/CGXNS96LQ";
var options = {
"method" : "POST",
"headers": {"Content-type": "application/json"},
"payload" : '{"text":"' + text + '"}'
};
UrlFetchApp.fetch(url, options);
}
function test(){
postSlack(b+name+"いただきます!");
}
sht.getRange(i-1,7).setValue("Slack投稿完了");
}
}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/18 05:27