さて今回私がご紹介するのは、Slackでランダムに自分の好きな名言を出現させる方法です。
自分で簡単に好きな人の名言を日めくり的に出現させるbot作りたいけど、ググってもプログラミングの知識がないと難しそうだし、、と思っている方向けです。
これ真似すれば、1時間もかからずに作れるはず。
私も初心者ですが、いろいろググっても難しかったので、自分で一番簡単だと思った手順でマニュアルを作りました。
#▼使うもの・用意するもの
- Slack ※名言botを出現させたいチャンネルと、Slackワークフロービルダー用にIcon用画像やコメント用絵文字を用意しておくとベネ。
- Google Spread Sheet(GSS)※名言をシートに用意する。Google App Script(GAS)を使いますが、本記事を参照にコピペでやってみて。
#▼おおまかな手順
- Slackワークフロービルダーのテンプレートから、スクラッチのワークフローを作成する。(その際Webhook用のURLをメモ帳等にコピっておく)
- GSSのA列に名言を好きなだけ書く。行ごとにランダムに出現できる。後で追加も出来るのではじめは少なめで可。
ネットに名言をまとめたサイトがたくさんあるので、そこからコピペ利用するのも良し。
ちなみに私は、ココのサイトがお気に入りです。https://iyashitour.com/meigen
- GSSのGASで、Slackに出現させるためのスクリプトを書く。試しに実行して成功したら、タイマー設定で好きなスケジュールを組む。
#▼以下、手順です。
###1.Slackワークフロービルダーのテンプレートから、スクラッチのワークフローを作成する。(その際Webhook用のURLをメモ帳等にコピっておく)
-
投稿したいチャンネルを選択して、メッセージ欄に5で作った「変数」を追加して(ここで任意の絵文字とか文章とかの定型文をいれてもよし)
-
(Icon変えるのはココ。これはアイコン変わるだけなので作成したワークフローを保存し終わってから変えてください。変えなくても良し)
-
WebhookのUrlが生成されるので、「Copy」を押して、メモ帳とかに貼り付けておく。(あとでGASにコピペします)
-
これで、Slack側の準備は完了。ワークフロービルダーは閉じてOK。
###2.Google Spread Sheet(GSS)※名言をシートに用意する。Google App Script(GAS)を使いますが、本記事を参照にコピペでやってみて。
- GSSで名言を用意する。Sheet1のA列の1行目から縦に詰めて書く。B列はGASで使うので何も書いちゃいけない。ファイル名は任意で良い。
- 「ツール」から「スクリプトエディタ」を選択して
- このコードをスクリプトエディタの「コード.gs」画面(デフォルトで表示されているはず)にコピペする。
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をコピペする。
}
- コードを編集する。(以下2点をチェック)
①4行目の 「10+1」の「10」はGSSで名言を書いた行数とする。例えば1~15行目まで書いた場合は「15」とする。
②最後のurlfetchAppの行にある「https://~xxx」の最後までの部分をSlackの11.で取得したurlに置換する。 - 「実行」を押してテストしてみる。(認証を要求する画面が出てきたら、確認してよしなに進めてください。)
と、ここまで書いていたら、画像が貼り付けできなくなりました。
画像貼り付け制限があるのかな?
「実行」してみて、成功すると、Slack側に名言Botが投稿されているはずです。あとは、GASのタイマー設定で任意のスケジュールを組めば完成なのですが、続きは[<その2>][1]で書くこととします。
[1]:https://qiita.com/takeC74/items/06ea4c0fecd610b090bd
続き読まなくても、だいたいわかったぜ!っていう方も、せっかくなので続きもみていただければ幸いです。
Qiitaもコードも初心者の私ですが、少しでも皆さんのご参考になれば幸いです。
以上、【マニュアル】簡単名言botを自分で作る(Slack+GAS編)その1を最後までお読みいただきありがとうございました。
※追記 <その2>書きました。↓
https://qiita.com/takeC74/items/06ea4c0fecd610b090bd