Slack / Google Cloud Platformと連携してスラッシュコマンドを作成する
Slackの使用頻度がすごく高いです。
フリーランスとして色々なプロジェクトに関わる上で、とても大事なツールなのですが、コミュニケーションを集約しようとすると、やはり色々カスタマイズしたくなる。
やってみると設定が難しかったので、メモしておく。
前提
- Google Cloud Platform の Cloud Functions 使います。
- GCPにコードをデプロイして、エンドポイントをSlack上の管理画面に登録。
GCP
まずはこのクイックスタートの通りに。
https://cloud.google.com/sdk/docs/quickstart-macos
前提条件として Python 2.7 が必要です。
・クイックスタートのページからPackageをダウンロードして解凍。
・ $ ~/Download/google-cloud-sdk/install.sh
コマンド実行。
・ インストール場所を聞かれるのでPATHが通っている場所かどうか確認して実行。
・ 多分Googleにログインするよう促されるのでログインする。
↑のアカウントで支払い等も行いますが、最初の1年は無料です。
・ ターミナル再起動
・ $ gcloud --version
で確認
プロジェクト作成
そして、こちらから から新規プロジェクトを作成。
こんな感じでFunctionsをPINしておくと便利です。
ついでにfunctionも作成しておきましょう。
function-1という名前が自動でつくはず。
ただ、大事なのはこちらの Function to execute
です。
反映されるまで少し時間がかかります。
プロジェクトの初期設定
bash
1
2
3
4
5
6
7
8
// プロジェクトの保存場所を作成
$ cd ~/Dev/anywhere
$ mkdir slack-test
$ cd slack-test
// Cloud functions 初期設定
// クイックスタートに詳細あり。
$ gcloud init
gcloud init
するとどのプロジェクトと関連付けるか聞かれるので、先程作成したプロジェクトを選択しましょう。
これで gcloud deploy コマンドを叩くと、先程作成したfunctionを上書きしてくれます。今回は何もカスタマイズしませんので、せっかく init しましたが、この中で何かすることはありません。次回以降カスタマイズの方法を書いていこうと思います。
※ 書きました。
下記のコマンドで設定を確認することができます。
1
$ gcloud config list
Slackとの連携
Slack管理画面でアプリを登録し、Slashコマンドを登録する。
先程GCPで作成したfunctionのURLをコピーして、
Request URL に貼り付けます。
こんなイメージ。
こうすると、Slack上で /post
とスラッシュコマンドを入力すれば、Cloud Functionsにリクエストが飛んで、レスポンスがSlack上に表示されるはずです。
Hello World!
と表示されたのではないでしょうか。
先程登録したfunctionのこの部分ですね。
まずは Google Cloud Platform との基本的な連携でした。