ハッカソン系イベントを教えてくれるSlack bot v0.1作ってみた


はじめに

connpassのAPIを使ってハッカソン関連のイベントを教えてくれるbotです
わざわざ調べなくても旬な情報がでてきます!

手順

Slackの準備

ボットのアプリをインストールする
Slackのワークスペースにボットのアプリ(中身のない箱のようなもの)をインストールする。

ここをクリック。

"hubot"と検索し、インストールをクリック。

インストールをクリック。

botのユーザー名を入力してHubotインテグレーションの追加をクリック。

APIトークンなるものが発行されるのでメモしておく。

Slackに戻ってみると、中身のない箱のようなボットが作成されていることが確認できますね。

Google Apps Scriptの準備

各種伏せ字部分を埋めてください

code.js
function myFunction() {
  var connpassApiOptions = {
    'method': 'get',
    'contentType': 'application/json'
  };

  var connpassApiResponse = UrlFetchApp.fetch('https://connpass.com/api/v1/event/?keyword_or=%E3%83%8F%E3%83%83%E3%82%AB%E3%82%BD%E3%83%B3&keyword_or=hackathon&count=30', connpassApiOptions);

  Utilities.sleep(2000)
  var content = JSON.parse(connpassApiResponse.getContentText("UTF-8"))

  var title = content.events[0].title
  var url = content.events[0].event_url
  var startTime = content.events[0].started_at
  var discription = content.events[0].description

  var text = " *最新のハッカソン情報をお届けします!!😆* " + "\n\n"

// ハッカソン関連のワードが含まれているかの判別
  content.events.map(function(value,index){
                                 if(Boolean(value.title.match(/ハッカソン/)) || Boolean(value.title.match(/アイデアソン/))  || Boolean(value.title.match(/thon/))){
    text = text + "- " + value.title + "(" + value.event_url +  ")\n\n"
  }
})

// hubotのtoken
  var slack_token = ★★★★★★★★★★★★;

  var slackApp = SlackApp.create(slack_token);
  // 対象チャンネル名
  var channelId = "#★★★★★★";
  // 投稿するメッセージ
  var message = text;

  var options = {
    'username': "★★★★★★", // botのSlack表示名
    'icon_url': "★★★★★★" // botのアイコン画像URL
  }

  slackApp.postMessage(channelId, message, options);
}

実行!

※実運用中なので画像と名前は伏せます

おわりに

Google Apps Scriptの時計マークボタン(トリガー)を設定すると週に1回自動で教えてくれたりします♪