Slack / Google Cloud Platformと連携してスラッシュコマンドを作成する

Shunsuke Sawada

Slackの使用頻度がすごく高いです。
フリーランスとして色々なプロジェクトに関わる上で、とても大事なツールなのですが、コミュニケーションを集約しようとすると、やはり色々カスタマイズしたくなる。
やってみると設定が難しかったので、メモしておく。

前提

GCP

まずはこのクイックスタートの通りに。
https://cloud.google.com/sdk/docs/quickstart-macos

前提条件として Python 2.7 が必要です。

・クイックスタートのページからPackageをダウンロードして解凍。
$ ~/Download/google-cloud-sdk/install.sh コマンド実行。
・ インストール場所を聞かれるのでPATHが通っている場所かどうか確認して実行。
・ 多分Googleにログインするよう促されるのでログインする。

↑のアカウントで支払い等も行いますが、最初の1年は無料です。

signup_free

・ ターミナル再起動
$ gcloud --version で確認

プロジェクト作成

  
そして、こちらから から新規プロジェクトを作成。
Screen_Shot_2019-09-01_at_21.45.22

こんな感じでFunctionsをPINしておくと便利です。
pin

ついでにfunctionも作成しておきましょう。
Screen_Shot_2019-09-01_at_22.27.55

function-1という名前が自動でつくはず。
ただ、大事なのはこちらの Function to execute です。
Screen_Shot_2019-09-01_at_22.29.42

反映されるまで少し時間がかかります。
creating

  

プロジェクトの初期設定

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コマンドを登録する。
command

先程GCPで作成したfunctionのURLをコピーして、
Request URL に貼り付けます。

endpoint

こんなイメージ。
test

こうすると、Slack上で /post とスラッシュコマンドを入力すれば、Cloud Functionsにリクエストが飛んで、レスポンスがSlack上に表示されるはずです。
Hello World! と表示されたのではないでしょうか。

先程登録したfunctionのこの部分ですね。
Screen_Shot_2019-09-01_at_22.29.42

まずは Google Cloud Platform との基本的な連携でした。
  

Shunsuke Sawada

おすすめの記事

エンジニアの人いろいろ
Slack / Functions FrameworkでサクッとCloud Functionsをカスタマイズ
Slack / ローカルの開発環境を整える