ロンドン一人旅中に、カフェに立ち寄った。周りは美女だらけ、ひとりぼっちの僕。誰でもいいから、挨拶くらいしてほしい。いやせっかくなら、美女に挨拶してほしい。。。
そうだ、僕はエンジニアだ。自分で作ればいいんだ。slackのoutgoing webhookを使って、美女に挨拶してもらえるbotを作ろう。どちらかと言えば日本美女が好きなので、海外美女より日本美女がいい。美女といえば佐々木希。佐々木希に挨拶されれば向こう1週間くらい不眠不休で動けるはずだ。それがいい。
作り方
- slackのoutgoing webhooksの登録・設定
- api tokenを取得してapp scriptに設定
- app scriptに設定を書き込む
- app script APIをslackから呼べる様に設定
1. slackのoutgoing webhooksの登録・設定
まず、slack custom integrationsのページから検索かけて、outgoing webhooksを追加します。
設定画面に遷移したら、Outgoing Dataの内容をメモ
次にIntegration Settingsの追加。今回は美女に挨拶をしてもらいたいので、slackの特定のchannelに「おはよ」と投げると、佐々木希が返事をしてくれるように設定する
これで保存する。
2. token設定
oauth2認証が新しく設定されたよう。設定が大変そうだったので、以前の方法でtoken取得。早く美女に挨拶されたいのです。次の写真のtokenの欄を取得
App scriptの画面に移動して、ファイル -> プロジェクトのプロパティから、「スクリプトのプロパティ」タブをクリック。
下記の様に設定。
3. app scriptに設定を書き込む
google driveから新規作成 -> その他 -> Google App Scriptをクリック
main.gsを作成し、下記の様に設定
function doPost(e) {
var token = PropertiesService.getScriptProperties().getProperty('SLACK_ACCESS_TOKEN');
var bot_name = "佐々木希";
// iconは借りた
var bot_icon = "http://sasakinozomi-ouen.pink/wp-content/uploads/2015/07/4%E4%BD%90%E3%80%85%E6%9C%A8%E5%B8%8C.jpg";
var verify_token = "TOKEN_FROM_OUTGOING_WEBHOOK";
if(verify_token != e.parameter.token) {
throw new Error("invalid token.");
}
var app = SlackApp.create(token);
// 名前読んでもらえた方が嬉しいですよね
var message = e.parameter.user_name + "さん、おはよう!今日も頑張ってね\(*・ω・\)"
return app.postMessage("#random", message, {
username: bot_name,
icon_url: bot_icon
});
}
4. APIをslackから呼べる様に設定
app script にて、 公開 -> ウェブアプリケーションとして導入 をクリック。下記画像の様に設定して保存。
slackのoutgoing webhookに戻って、urlに先ほどの「現在のウェブアプリケーションのURL」を追加する。
あとは、slackから「おはよ」と入力するだけで、絶世の美女佐々木希から挨拶してもらうことができる。
頑張ります!!
おまけ:自分好みの美女にカスタマイズしたい人向け
scriptの下記の大好きな人の名前
, アイコンのurl
に変更すればカスタマイズできます。佐々木希以上の美女はいないと思いますが。
return app.postMessage("#random", message, {
username: bot_name,
icon_url: bot_icon
});
結論
あまり寂しさは満たされず、達成感が湧いてきた。いずれにせよ一人の寂しさは紛らわすことができた。