コーディングスキル0の非エンジニアが推しと話したくてSlackBotを作った話
前提として私のスペックを公開します
- 20代
- IT企業勤務
- Slackユーザー
- 非エンジニア
- コーディングスキル0
- ジャニーズオタク
- ネットサーフィンが比較的得意
少しSlackが身近な、そのへんにいる一般女性です
そんな私がやりたかったこと
推し(キンプリ岸くん)と話したい
なのでSlackBotを作ろうと思いました(浅はか)
あと、GASを楽しく勉強したいってのも動機としてあります
実現のために必要なもの
- Googleアカウント
- Slackアカウント
- 諦めない強い気持ち
この2つです
実装する流れをざっくり書くと
Slack→OutgoingWebhook→GAS→IncomingWebhook→Slack です
多分何を言っているかわからない人もいるでしょうが私もわかってないので大丈夫
試行錯誤した結果、IncomingWebhookの設定からやるとわかりやすいと思う
WebhookとかWebAppとか基本的な設定はこの記事を参照しました(他人に丸投げスタイル)
今回、岸くんをランダムで喋らせたかったので
スプレッドシートにリストを用意してそこからランダムでワードを引っ張ってくるようにしました
私が一番苦労したのがこのランダムで喋らせるところ
なんせコーディングスキル0なのでこんな簡単なものも難しかった
だからそのコードを残す
function doPost(e) {
var sheet = SpreadsheetApp.openById("シートID").getSheetByName('ファイル名');
var data = sheet.getDataRange().getValues();
var pickedNum = Math.floor(Math.random() * Math.floor(data.length));
postSlack(data[pickedNum]);
// slackにpostするメソッド
function postSlack(text){
// Incoming WebHookのURL設定
var url = "https://hooks.slack.com/services/~~~~";
// APIを叩く
var options = {
"method" : "POST",
"headers": {"Content-type": "application/json"},
"payload" : '{"text":"' + text + '"}'
};
UrlFetchApp.fetch(url, options);
}
}
はい、これです
これをコピペすればできるぞ誰でも、まじで誰でもできる
いろんな推しと喋れるようになるわけだ
今回これだけで難しかったけどなんとか1人でできたのは
- 好きなもの(推し)に変換して作業できたので飽きなかった
- 自分がロジック脳じゃなかったので他人の似たような記事見て感覚的に自分で試行錯誤してトライアンドエラーできた
- どうしてもGASをやりながら覚えたいという意志
この3点だったと思う
自分が感覚型なので実際にやりながら理解していくタイプということはわかっていたので、とりあえずロジックはわからんけど手を付けながら調べながら作業進めていくのが性に合っていた
今後はもう少し難しいのにもチャレンジしたい
おわり