【マニュアル】簡単名言botを自分で作る（Slack＋GAS編）その１

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

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

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

#▼以下、手順です。
###1.Slackワークフロービルダーのテンプレートから、スクラッチのワークフローを作成する。（その際Webhook用のURLをメモ帳等にコピっておく）
 1. Slackワークフロービルダーのテンプレートから、以下を選択。<br>　![1_wfb_main.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/656547/e4e3a172-fc92-a382-de30-ddf480645023.png)

 2. 任意の名前をつける。<br>　　![2_namae.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/656547/6973eca4-08df-ec59-36bf-db034c4d08a6.png)　
 3. Webhookを選択して <br>　　![3_webhook.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/656547/0c061531-b181-2752-5c31-2b48396de21b.png)
 4. 変数を追加するためのボタンを押下して<br>　![4_add variable.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/656547/5c93bb96-3db5-4438-515d-682937c88fc6.png)
 5. 「Key」に「text」といれて<br>　![5_key_write_text.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/656547/aa95efab-743c-8574-a0a5-7909445d642e.png)
 6. Stepを追加して<br>　![6_workflow_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/656547/f74fee1e-f346-f77a-d5ff-661833ff278c.png)
 7. Send a Message（メッセージを送るかな？）を選択して<br>　![7_add_a_wf_step.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/656547/322c8703-ba99-6d95-6a33-74d027679629.png)
 8. 投稿したいチャンネルを選択して、メッセージ欄に5で作った「変数」を追加して（ここで任意の絵文字とか文章とかの定型文をいれてもよし）<br>　![8_sendamessage.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/656547/2a681be8-3d61-44d0-b64d-4baf8b24c421.png)
 9. （Icon変えるのはココ。これはアイコン変わるだけなので作成したワークフローを保存し終わってから変えてください。変えなくても良し）<br>　![9_icon_change.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/656547/a39442e2-a461-7a2c-ea43-005159658d7c.png)
 10. Publish（公開）を押すと、<br>　![10_publish.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/656547/b9b434fa-5e25-1f5b-41cb-54ad0d8f884c.png)
 11. WebhookのUrlが生成されるので、「Copy」を押して、メモ帳とかに貼り付けておく。（あとでGASにコピペします）<br>　![11_webhookurl.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/656547/eaeb7f65-04e8-7505-ec74-72e753307c56.png)
 12. これで、Slack側の準備は完了。ワークフロービルダーは閉じてＯＫ。

　
###2.Google Spread Sheet（GSS）※名言をシートに用意する。Google App Script（GAS）を使いますが、本記事を参照にコピペでやってみて。
 1. GSSで名言を用意する。Sheet1のA列の1行目から縦に詰めて書く。B列はGASで使うので何も書いちゃいけない。ファイル名は任意で良い。<br>　![12_gss_meigen.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/656547/c90ed9b9-6978-2b8c-19b6-bc10393832ba.png)
 2. 「ツール」から「スクリプトエディタ」を選択して<br>　![13_gss_editer_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/656547/8e6fdf60-c85f-5f5d-9eab-eb5aa14591ab.png)
 3. このコードをスクリプトエディタの「コード.gs」画面（デフォルトで表示されているはず）にコピペする。  
  
```JavaScript: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をコピペする。
} 
```
 4. コードを編集する。（以下2点をチェック）<br> ①4行目の 「10+1」の「10」はGSSで名言を書いた行数とする。例えば1～15行目まで書いた場合は「15」とする。<br> ②最後のurlfetchAppの行にある「https://～xxx」の最後までの部分をSlackの11.で取得したurlに置換する。
 5. 「実行」を押してテストしてみる。（認証を要求する画面が出てきたら、確認してよしなに進めてください。）<br>　

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

続き読まなくても、だいたいわかったぜ！っていう方も、せっかくなので続きもみていただければ幸いです。<br>
Qiitaもコードも初心者の私ですが、少しでも皆さんのご参考になれば幸いです。<br>以上、**【マニュアル】簡単名言botを自分で作る（Slack＋GAS編）その１**を最後までお読みいただきありがとうございました。　

※追記　＜その２＞書きました。↓
　https://qiita.com/takeC74/items/06ea4c0fecd610b090bd