GASでSlackのbotを作成するときの備忘録
独学でプログラミングを勉強中の備忘録として投稿する。
全てが初めての作業でかなり詰まったのでそれらについて記載する
作りたかったのも
Slackの特定のチャンネルに文字を投稿した場合に、スプレッドシートにある文言をランダムで返すbot
作成の大枠
スプレッドシートの文字をSlackへの投稿
Slackにてアプリの作成
SlackにてIncoming Webhookの設定
GASにてプログラムを作成
Slackの投稿に対して反応して投稿を返す
SlackにてOutgoing Webhookの設定
スクリプトエディタ にて設定
参考にした記事
https://tech.camph.net/slack-bot-with-gas/
https://techblog.gmo-ap.jp/2019/09/06/slack%E3%81%A8%E3%82%B9%E3%83%97%E3%83%AC%E3%83%83%E3%83%89%E3%82%B7%E3%83%BC%E3%83%88%E3%82%92%E9%80%A3%E6%90%BA%E3%81%97%E3%81%A6%E7%AD%8B%E3%83%88%E3%83%AC%E7%AE%A1%E7%90%86%E3%82%92%E3%81%99/
大変参考になりました。
ありがとうございます。
基本的には上記の記事を参考に進めていきました。
##詰まったところ
コード自体は正しい(ほぼコピペだし・・・)が、Slackからのpostに対して応答しない
スクリプトエディタからの実行ではSlackに応答を返すので問題なし
Outgoing Webhookの設定も問題なさそう
残すは、Outgoing Webhookがpostする先の設定が影響してそうということで、調査
原因1
公開アプリケーションの公開範囲はAnyone every anonymous
原因2
コードの内容を変更する度にバージョン管理と公開しているアプリケーションのアップデートが必要
スクリプトエディタ の ファイル > 版を管理
にてsave new versionを押下し最新バージョンを作成
公開 > ウェブアプリケーションとして公開
よりProject version を最新版にして更新
これに関しては、公開しているアプリケーションにcurlで応答を投げながら気づいた
帰ってくるエラー:TypeError: undefined の指すエラー箇所の行数が永遠と同じ
何回コードを修正しても同じ、なんならその行を消したのにエラー
これは、アプリケーションが更新されていないと睨み上記の問題点に到達した。
(駆け出しプログラマの辛いところですね・・・)
curl -XPOST ”自分の公開URL” -H "Accept: application/json" -H "Content-type: application/json" -d "{"value":"lisz-works"}"
今後やりたいこと
なんとかSlackとスプレッドシート の連携ができたのでここからやりたいことを実現させていきたい
タスク管理
Slincky(Chormoe拡張機能)によるURL収集をスプレッドシート へ反映
Googleカレンダーへの予定入力とGoogleハングアウトの予定入力
駆け出しエンジニアの奮闘は続く・・・・