2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【マニュアル】簡単名言botを自分で作る(Slack+GAS編)その1

Last updated at Posted at 2021-02-12

 さて今回私がご紹介するのは、Slackでランダムに自分の好きな名言を出現させる方法です。
 自分で簡単に好きな人の名言を日めくり的に出現させるbot作りたいけど、ググってもプログラミングの知識がないと難しそうだし、、と思っている方向けです。
 これ真似すれば、1時間もかからずに作れるはず。
 私も初心者ですが、いろいろググっても難しかったので、自分で一番簡単だと思った手順でマニュアルを作りました。

#▼使うもの・用意するもの

  1. Slack ※名言botを出現させたいチャンネルと、Slackワークフロービルダー用にIcon用画像やコメント用絵文字を用意しておくとベネ。
  2. Google Spread Sheet(GSS)※名言をシートに用意する。Google App Script(GAS)を使いますが、本記事を参照にコピペでやってみて。

#▼おおまかな手順

  1. Slackワークフロービルダーのテンプレートから、スクラッチのワークフローを作成する。(その際Webhook用のURLをメモ帳等にコピっておく)
  2. GSSのA列に名言を好きなだけ書く。行ごとにランダムに出現できる。後で追加も出来るのではじめは少なめで可。
    ネットに名言をまとめたサイトがたくさんあるので、そこからコピペ利用するのも良し。
    ちなみに私は、ココのサイトがお気に入りです。https://iyashitour.com/meigen 
  3. GSSのGASで、Slackに出現させるためのスクリプトを書く。試しに実行して成功したら、タイマー設定で好きなスケジュールを組む。

#▼以下、手順です。
###1.Slackワークフロービルダーのテンプレートから、スクラッチのワークフローを作成する。(その際Webhook用のURLをメモ帳等にコピっておく)

  1. Slackワークフロービルダーのテンプレートから、以下を選択。
     1_wfb_main.png

  2. 任意の名前をつける。
      2_namae.png 

  3. Webhookを選択して
      3_webhook.png

  4. 変数を追加するためのボタンを押下して
     4_add variable.png

  5. 「Key」に「text」といれて
     5_key_write_text.png

  6. Stepを追加して
     6_workflow_1.png

  7. Send a Message(メッセージを送るかな?)を選択して
     7_add_a_wf_step.png

  8. 投稿したいチャンネルを選択して、メッセージ欄に5で作った「変数」を追加して(ここで任意の絵文字とか文章とかの定型文をいれてもよし)
     8_sendamessage.png

  9. (Icon変えるのはココ。これはアイコン変わるだけなので作成したワークフローを保存し終わってから変えてください。変えなくても良し)
     9_icon_change.png

  10. Publish(公開)を押すと、
     10_publish.png

  11. WebhookのUrlが生成されるので、「Copy」を押して、メモ帳とかに貼り付けておく。(あとでGASにコピペします)
     11_webhookurl.png

  12. これで、Slack側の準備は完了。ワークフロービルダーは閉じてOK。

 
###2.Google Spread Sheet(GSS)※名言をシートに用意する。Google App Script(GAS)を使いますが、本記事を参照にコピペでやってみて。

  1. GSSで名言を用意する。Sheet1のA列の1行目から縦に詰めて書く。B列はGASで使うので何も書いちゃいけない。ファイル名は任意で良い。
     12_gss_meigen.png
  2. 「ツール」から「スクリプトエディタ」を選択して
     13_gss_editer_1.png
  3. このコードをスクリプトエディタの「コード.gs」画面(デフォルトで表示されているはず)にコピペする。
node-google-apps-script
function myFunction() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheetByName('シート1');
var range = sheet.getRange("シート1!B1").setFormula('=INDIRECT("シート1!A:A" & INT(RAND()*10+1))'); //「10」は、名言を書いた行数。例えば、1~15行目まで書いたら「15」にする。
var message = sheet.getRange("シート1!B1").getValue();
var options =
  {
    "method" : "post",
    "contentType" : "application/json",
    "payload" : JSON.stringify(
      {
        "text" : message
      }
    )
  };
UrlFetchApp.fetch("https://hooks.slack.com/workflows/xxxxxxxxxxxxxxxxxxxxxxxxxxx", options); //””の間に、slack側で取得したurlをコピペする。
} 
  1. コードを編集する。(以下2点をチェック)
    ①4行目の 「10+1」の「10」はGSSで名言を書いた行数とする。例えば1~15行目まで書いた場合は「15」とする。
    ②最後のurlfetchAppの行にある「https://~xxx」の最後までの部分をSlackの11.で取得したurlに置換する。
  2. 「実行」を押してテストしてみる。(認証を要求する画面が出てきたら、確認してよしなに進めてください。)
     

と、ここまで書いていたら、画像が貼り付けできなくなりました。
画像貼り付け制限があるのかな?
「実行」してみて、成功すると、Slack側に名言Botが投稿されているはずです。あとは、GASのタイマー設定で任意のスケジュールを組めば完成なのですが、続きは[<その2>][1]で書くこととします。
[1]:https://qiita.com/takeC74/items/06ea4c0fecd610b090bd

続き読まなくても、だいたいわかったぜ!っていう方も、せっかくなので続きもみていただければ幸いです。

Qiitaもコードも初心者の私ですが、少しでも皆さんのご参考になれば幸いです。
以上、【マニュアル】簡単名言botを自分で作る(Slack+GAS編)その1を最後までお読みいただきありがとうございました。 

※追記 <その2>書きました。↓
 https://qiita.com/takeC74/items/06ea4c0fecd610b090bd

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?