文系出身の営業マンが Google Apps Script で仕事をサボってみた

文系出身の営業マンが独学で身につけた Google Apps Script の知識をひけらかし、さらけ出し、はずかしい姿までを公開するブログ。

Google Apps Script を使って SpreadSheet の内容を Slack のチャンネルに投稿する

概要

Slack と Google Apps Script の簡単な連携方法をご紹介したいと思います。 ※Slack の管理者権限がないとできないです。

全コード

var slack = {
  postUrl: 'https://slack.com/api/chat.postMessage',
  token: 'TOKEN', // Slackのtoken
  // SlakckのチャネルID
  channelId: "CHANNELID", 
  // bot名
  userName: "BOTNAME", 
}

var postSlack= function(text) {
  UrlFetchApp.fetch(slack["postUrl"], {
    "method" : "post",
    "payload" : {
      token: slack["token"],
      channel: slack["channelId"],
      username: slack["userName"],
      text: text
    }
  });
}

function myFunction() {
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var sheet = ss.getSheets()[0];
 var cell = sheet.getRange("A1").getValue();
 postSlack(cell);
}

事前準備

token と channel ID の取得

Slack と SS を連携するには token と channel ID を取得する必要があります。 ※管理者しか取得できない

channel ID は投稿した channle の ID を取得してください。 ※ channel ID は #general とかではないですよ!

Toke の取得 → https://api.slack.com/web channel IDの取得 → https://api.slack.com/methods/channels.list/test

ライブラリのインストール

ライブラリをインストールする必要ありますので、リソースからライブラリを選択して以下の Key を入力してください。 f:id:cohki:20160710132938p:plain

Key:M3W5Ut3Q39AaIwLquryEPMwV62A3znfOO

投稿する

そして、さきほど紹介しましたコードを入力してください。そうすれば、選択したセルの内容を Slack に送ることが出来ます。

ちなみに、トリガーも設定することができます。 実行ボタンの横にある時計マークを押すと設定できますので、お試しください。

最後に

これを使えば、 Google Calender の内容を Slack に送ったりもできますし、 Analytics と連携してアクセス状況の日報とかも作れますね。