JavaScript を使い、ブラウザから Slack に投稿

定型文をブラウザ上のボタンをクリックすることで投稿できるようにしたい。ついでにボタンもある程度オシャレにしたい。

(1)Slack のトークンを取得する。

Legacy tokens | Slack
https://api.slack.com/custom-integrations/legacy-tokens

(2)以下のような、HTML、JavaScript、CSS ファイルを作成する。

SlackPost.html

 1<!DOCTYPE html>
 2<html lang="ja">
 3<head>
 4    <meta charset="UTF-8">
 5    <title>Slack Sample</title>
 6    <link rel="stylesheet" type="text/css" href="style.css">
 7</head>
 8<body>
 9    <a href="#" class="slack-submit">Post to Slack!</a><br>
10    <script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
11    <script src="sample.js"></script>
12</body>
13</html>

style.css

 1.slack-submit{
 2    display: inline-block;
 3    padding: 0.5em 1em;
 4    text-decoration: none;
 5    background: #668ad8;/*ボタン色*/
 6    color: #FFF;
 7    border-bottom: solid 4px #627295;
 8    border-radius: 3px;
 9}
10.slack-submit:active {/*ボタンを押したとき*/
11    -ms-transform: translateY(4px);
12    -webkit-transform: translateY(4px);
13    transform: translateY(4px);/*下に動く*/
14    border-bottom: none;/*線を消す*/
15}

sample.js

 1$(function () {
 2    $('.slack-submit').on('click', function () {
 3    var url = 'https://slack.com/api/chat.postMessage';
 4        var data = {
 5            token: '[1で取得したトークン]',
 6            channel: '#general',
 7            username: '投稿ボタン',
 8            text: 'Hello Slack!',
 9            icon_emoji: ':smile:'
10        };
11
12        $.ajax({
13            type: 'GET',
14            url: url,
15            data: data,
16            success: function (data) {
17                alert( '投稿完了!');
18            }
19        });
20    });
21});

これでブラウザから定型文を投稿できる。

参考:
JavaScriptを使ってSlackのチャンネルに投稿してみる
https://qiita.com/cawpea/items/98e6271f627c3b9a5e12

CSSで作る!押したくなるボタンデザイン100(Web用)
https://saruwakakun.com/html-css/reference/buttons

初心者でも簡単にできる!HTMLにCSSを適用させる方法 | TechAcademyマガジン
https://techacademy.jp/magazine/9647