LANG SELRCT

コードを書く場所についてはこちら

2017年11月18日土曜日

Slack BOTでメッセージを送信する

SlackのAPIをたたいて指定したchannelにメッセージを送信するコードです

TOKENの作成方法は下の方に書きましたが、扱いについては注意が必要です


コード.gs
var TOKEN = "作成したtoken"
var POST_URL = 'https://slack.com/api/chat.postMessage';

function myFunction() {
  var payload = {
    token: TOKEN,
    channel: '#bot-test',
    text: "hello",
    icon_emoji: ':sunny:',
    username: 'hello bot'
  };
  var params = {
    'method': 'post',
    'payload': payload
  };
  var response = UrlFetchApp.fetch(POST_URL, params);
  Logger.log(response);
}
意訳.gs
作成したtokenを設定する
メッセージを送るurlを設定する

この機能は以下を実行する
payloadのデータを作る
作成したtokenを設定
投稿するchannelを設定
投稿するtextを設定
アイコンの絵文字を設定
usernameを設定

paramsのデータを作る
methodをpostに設定
payloadのデータを設定

paramsを付けてslackのAPIをたたいて
responseをログに出す




試してみる


コード.gsのmyFunctionを実行すると設定したchannelにメッセージが送られます




Tokenの作成方法


以下のページにアクセスする
https://api.slack.com/custom-integrations/legacy-tokens

トップページからだと以下の遷移でアクセスできます
https://api.slack.com/ > App features > Legacy custom integrations > Legacy tokens


アクセスした画面でCreate tokenをクリックすると

Tokenが作成されます(下の画像でxoxp-から始まる文字列)

※このTokenでワークスペースへアクセスできるため
パスワードと同じレベルの注意が必要です(他の人と共有しない)




おまけ


icon_emojiの種類はこちら
https://www.webpagefx.com/tools/emoji-cheat-sheet/



参考
https://api.slack.com/methods/chat.postMessage

API トークンの生成と再生成
https://api.slack.com/custom-integrations/legacy-tokens
https://get.slack.help/hc/ja/articles/215770388-API-%E3%83%88%E3%83%BC%E3%82%AF%E3%83%B3%E3%81%AE%E7%94%9F%E6%88%90%E3%81%A8%E5%86%8D%E7%94%9F%E6%88%90