Help us understand the problem. What is going on with this article?

SlackとGAS連結させて朝に優しい占いBot作るよ (Slack Bot)

動機

毎朝の心の状態を良くするために、GASとSlackBotを使って、朝の占いBotを作りました。
ので、作り方を共有したいと思います。

GASとは

Google Apps Scriptの略で、Googleが提供しているサービスの一つです。
JavaScriptで動作するスクリプト環境です。
https://developers.google.com/apps-script/
https://tonari-it.com/google-apps-script-start/

Slack Botとは

Slack上で動くボットプログラムです。
https://ex-trident.slack.com/apps/category/At0MQP5BEF-bots

先ずはSlackの方で連携する為の設定をします。

今回使うSlackアプリは「Incoming Webhooks」と言うものです。
Slackの「アプリを追加する」から、Incoming Webhookを選択し、設定を開きます。
そこで、このアプリを使用したいチャンネルを選びます。
Webhook URLをコピーします。このURLはGASで使います。

GASでコードを書きます

次に、占いBotのスクリプトを書いていきます。
Google Driveを開いて、新規フォルダを作成します。
Google Driveを開いたら、「新規」から「その他」の下にある、「Google Apps Script」を選択します。
すると、スクリプトを書ける画面になりますので、そこに占い用のコードを書いていきます。
簡単に以下の様に書きました。

FortuneTellingBot
function FortuneTellingBot() {

  var results=["No.1: 大吉","No.2: 大吉","No.3: 大吉","No.4: 大吉","No.5: 大吉","No.6: 大吉"];
  var state = Math.floor(Math.random()*results.length)
  var message = results[state];
  var face;
  switch (state) {
    case 0: face = "" + "("+"՞ةڼ◔"+")" + ""; break;
    case 1: face = " ┗┏┗┏" + "("+"'o'"+")" + "┓┛┓┛"; break;
    case 2: face = " ("+"◠‿◠"+")"; break;
    case 3: face = " 。゚"+"("+" ՞ةڼ◔ `゚"+")"+"゚。"; break;
    case 4: face = " ("+" ̄∇ ̄"+")"; break;
    case 5: face = " ("+"^O^"+")"; break;
  }

  var options =
  {
    "method" : "post",
    "contentType" : "application/json", 

    "payload" : JSON.stringify(
      {
        "text" : "今日のあなたの運勢は、" + "\n" + "【 " + message + "" + " です。" + "\n" + "今日も一日頑張りましょう!" + face
      }),
  };

  UrlFetchApp.fetch("https://hooks.slack.com/services/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", options);
}

占いの結果とメッセージ、そしてその日の顔文字を表示します。

UrlFetchApp.fetch("")の中に、先ほどSlackで追加したアプリ、Incoming Webhookの設定でコピーしたWebhook URLを貼り付けます。こうすることで、GASからIncoming Webhookに向けて書いたスクリプトの実行結果が送れるようになります。
スクリプトを書いたら「実行」から、「関数をデバッグ」します。今回の場合だと「FortuneTellingBot」をそのまま選択します。
そしてプロジェクトを保存。

時間を指定します。

毎朝決まった時間帯に自動で送信して欲しいのでその設定を行います。
スクリプト編集画面の時計マークを押します、そしてトリガーを追加し、実行したい関数を選択して保存します。
トリガーを追加したら、編集をします。トリガーにカーソルを合わせ、鉛筆マークを押します。
「時刻を選択」と言う項目があるので、午前9時~10時(好きな時間帯)を選択して保存します。
これで、毎日その時間にスクリプトが実行される様になりました。

動作確認

スクリーンショット 2018-11-28 13.02.02.png
上手くいきましたね。
毎朝大吉なら毎日ハッピーですね。
プラシーボ効果とかあるし。

...
以上になります。
お疲れ様でした。

最後に

GASを使ってGoogleのカレンダーとかと連携させて普段の暮らしや業務をよくできますね。
いいね。

参考にした記事

【初心者向け】GASを使ってSlackへ自動通知
https://qiita.com/chihiro/items/c7b11abc78f5d806c3a8
Slack botをGASでつくる方法で一番楽そうなやつ
https://vaaaaaanquish.hatenablog.com/entry/2017/09/27/184352

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away