1
1

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.

GASとSlackの連携

Last updated at Posted at 2020-04-12

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
image.png

原因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ハングアウトの予定入力

駆け出しエンジニアの奮闘は続く・・・・

1
1
1

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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?