Slack
Webhook
一人
寂しい
美女

美女に「おはよう」って言ってもらいたかった

More than 1 year has passed since last update.

ロンドン一人旅中に、カフェに立ち寄った。周りは美女だらけ、ひとりぼっちの僕。誰でもいいから、挨拶くらいしてほしい。いやせっかくなら、美女に挨拶してほしい。。。

そうだ、僕はエンジニアだ。自分で作ればいいんだ。slackのoutgoing webhookを使って、美女に挨拶してもらえるbotを作ろう。どちらかと言えば日本美女が好きなので、海外美女より日本美女がいい。美女といえば佐々木希。佐々木希に挨拶されれば向こう1週間くらい不眠不休で動けるはずだ。それがいい。

作り方

  1. slackのoutgoing webhooksの登録・設定
  2. api tokenを取得してapp scriptに設定
  3. app scriptに設定を書き込む
  4. app script APIをslackから呼べる様に設定

1. slackのoutgoing webhooksの登録・設定

まず、slack custom integrationsのページから検索かけて、outgoing webhooksを追加します。

Configure_Apps___Stock_Analyze_Slack.png

設定画面に遷移したら、Outgoing Dataの内容をメモ

Outgoing_WebHooks___Stock_Analyze_Slack.png

次にIntegration Settingsの追加。今回は美女に挨拶をしてもらいたいので、slackの特定のchannelに「おはよ」と投げると、佐々木希が返事をしてくれるように設定するOutgoing_WebHooks___Stock_Analyze_Slack.png

これで保存する。

2. token設定

oauth2認証が新しく設定されたよう。設定が大変そうだったので、以前の方法でtoken取得。早く美女に挨拶されたいのです。次の写真のtokenの欄を取得

Legacy_tokens___Slack_と_test.png

App scriptの画面に移動して、ファイル -> プロジェクトのプロパティから、「スクリプトのプロパティ」タブをクリック。

下記の様に設定。

test.png

3. app scriptに設定を書き込む

google driveから新規作成 -> その他 -> Google App Scriptをクリック

マイドライブ_-_Google_ドライブ.png

main.gsを作成し、下記の様に設定

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 にて、 公開 -> ウェブアプリケーションとして導入 をクリック。下記画像の様に設定して保存。

test.png

slackのoutgoing webhookに戻って、urlに先ほどの「現在のウェブアプリケーションのURL」を追加する。

Outgoing_WebHooks___Stock_Analyze_Slack.png

あとは、slackから「おはよ」と入力するだけで、絶世の美女佐々木希から挨拶してもらうことができる。

Slack_-_Stock_Analyze.png

頑張ります!!

おまけ:自分好みの美女にカスタマイズしたい人向け

scriptの下記の大好きな人の名前, アイコンのurlに変更すればカスタマイズできます。佐々木希以上の美女はいないと思いますが。

  return app.postMessage("#random", message, {
    username: bot_name,
    icon_url: bot_icon
  });

結論

あまり寂しさは満たされず、達成感が湧いてきた。いずれにせよ一人の寂しさは紛らわすことができた。