Slack APIを使いこなす
postMessage
messageをSlackチャンネルにポストする関数
var postMessage = "https://slack.com/api/chat.postMessage";
var app_auth_token = "xoxb-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
var channel = "#xxxxxxxx";
var message = "It is sample message!!";
function postMessageToSlackChannel(app_auth_token, channel, message){
const params = {
"token" : app_auth_token,
"channel" : channel,
"text" : message
};
const payload = JSON.stringify(params);
const options = {
"method" : "post",
"contentType" : "application/json",
"headers" : {"Authorization" : "Bearer "+ app_auth_token},
"payload" : payload
};
files.upload
fileをSlackチャンネルにポストする関数
postMessageと違ってoptionsの指定channelが複数形になっていないと指定されたチャンネルにアップロードされなくてつまづいた。
仕様書はよく読みましょうということ。
※今回はSpreadSheet上のファイルをアップロードする。
var postMessage = "https://slack.com/api/files.upload";
var app_auth_token = "xoxb-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
var channel = "#xxxxxxxx";
var wsName = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("シート名");
var charts = wsName.getCharts();
var filename = 'chart.png'
var file = charts[0].getBlob().getAs('image/png').setName(filename);
function uploadFileToSlackChannel(app_auth_token, channel, file){
const payload = {
"token" : app_auth_token,
"channels" : channel,
"file" : file
};
const options = {
"method" : "post",
"payload" : payload
};
return UrlFetchApp.fetch(uploadFileUrl, options);
}