かずきち。の日記

サーバサイドエンジニアのつぶやき

【コードあり】GoogleAppsScript×Slackで更新情報などのデータを自動でどんどん書き込んでいく【34行】


Slack使っていますか?

slack.com
引用:
https://slack.com/intl/ja-jp

Slackはビジネスに特化したチャットツールです。
プライベートだとLINEを使うことが多いですが、ビジネスだとSlackを使用する機会が多いです。
今回はSlackを自動投稿するプログラムを作っていこうと思います。
毎日の定型業務を自動化していきます。

まずはコード
function postSlackbot() {
  //SlackAPIで登録したボットのトークンを設定する(Slackのtokenを発行してもらうこと)
  //https://xxx.slack.com/oauth?client_id=5478609054929.5530505855681&scope=chat%3Awrite&user_scope=&redirect_uri=&state=&granular_bot_scope=1&single_channel=0&install_redirect=install-on-team&tracked=1&team=1のページからアクセストークンを発行してもらう
  let token = "xoxbから始まるSlackトークン";
  //ライブラリから導入したSlackAppを定義し、トークンを設定する
  let slackApp = SlackApp.create(token);
  //Slackボットがメッセージを投稿するチャンネルを定義する
  let channelId = "自身のChannnelID";
  //Slackボットが投稿するメッセージを定義する
  let message = "SlackボットによるGASからの投稿メッセージです。"
  //SlackAppオブジェクトのpostMessageメソッドでボット投稿を行う
  //slackApp.postMessage(channelId, message);

  var query = 'label:〇〇だより';
  var start = 0;
  var max = 1;

  var threads = GmailApp.search(query,start,max);
  var messageThreads = GmailApp.getMessagesForThreads(threads);

  var data = [];

  for(let messages of messageThreads){
    var data_raw = [
    messages[0].getSubject(),
    messages[0].getPlainBody()
    ];
    data.push(data_raw);
    
    Logger.log(data[0][0]);
    Logger.log(data[0][1]);
  }
}

以上がプログラムからSlackに送信するためのコードです。
ここのコード中では、自身のChannnelIDは日本語で記入されていますので、この箇所を自身のものに変更していきます。

slackのトークン取得

api.slack.com

にアクセスして自身のチャンネルに投稿するためのxoxb-から始まるアクセストークンを取得します。

次にチャンネルIDを差し替えます

auto-worker.com

チャンネルIDを指定して、特定のチャンネルに投稿します。
フジテレビは8チャンネルじゃなないですが、料理に関することはrecipeチャンネルみたいに自分の好きなIDに変えます。
自身でSlackのチャンネルIDの調べ方がわからないという方は上記のリンクをみてください。
あとはトリガーを設定して、自動でSlackに書き込めば完璧です。

活用事例

Slackに投稿できる内容ならなんでも良いのですが、自動化のインパクトが得られる内容がいいでしょう。
毎月発生するもの、毎週発生するもの、毎日発生するもので、デジタル媒体で情報を取得できるものがいいです。
日経平均の株価でも良し、毎日の東京のYahoo天気の内容でも良いです。
あとはこのコードをそのままコピーしてちょこっと改変すれば、動きますので興味ある人はいじってみてください。