この記事は BBSakura Networks Advent Calendar 2019 の4日目の記事です。
BBSakura NetworksではKibelaを使っていて、Slackでは日々Kibelaのリンクが飛び交っているのですが、リンクを貼っても展開されないため、何のドキュメントなのかわからず不便でした。 そこで、KibelaのリンクをSlackに貼ったときに展開されるようにするSlack Appを作ったので、使い方を書いておきます。 ソースコードは https://github.com/higebu/slack-app-unfurl-kibela に置いてあります。
以下、手順です。
Kibelaのアクセストークンを取得する
以下のURLにアクセスし、 アクセストークンの作成
ボタンをクリックすると作成できます。
権限は read
のみで大丈夫です。
https://my.kibe.la/settings/access_tokens
Slack Appを作成する
以下の手順で作成します。
- https://api.slack.com/apps を開く
Create New App
ボタンをクリック- 名前を入れて、
Create App
Event Subscriptions
をクリックEnable Events
をOn
にするOAuth & Permissions
を開き、Scopes
でlink:write
を追加するApp unfurl domains
を展開し、Add Domain
で、{TEAM_NAME}.kibe.la
を入力し、Save Changes
- 左メニューから
Install App
を開き、Install App to Workspace
->Allow
- OAuth Access Token が表示されるのでメモしておく
※後で戻ってくるので、Slack Appの管理画面は開いたままにしておきます。
slack-app-unfurl-kibelaをデプロイ
Herokuにデプロイ
下記のボタンからデプロイできます。
App name
に入れた名前がURLになります。具体的には https://{app name}.herokuapp.com/
のようになります。
KIBELA_TEAM
にはKibelaのチーム名、 KIBELA_TOKEN
にKibelaのアクセストークン、 SLACK_TOKEN
にSlackのOAuth Access Tokenを入力し、 Deploy App
ボタンを入力してください。
GCPのCloud Runにデプロイ
KIBELA_TEAM=xxxxxx
KIBELA_TOKEN=xxxxxx
SLACK_TOKEN=xxxxxx
PROJECT_ID=xxxxxx
REPO=docker-repo
IMAGE=slack-app-unfurl-kibela
git clone https://github.com/higebu/slack-app-unfurl-kibela.git
cd slack-app-unfurl-kibela
gcloud projects create $PROJECT_ID
gcloud config set project $PROJECT_ID
echo "$KIBELA_TEAM" | gcloud secrets create KIBELA_TEAM --data-file -
echo "$KIBELA_TOKEN" | gcloud secrets create KIBELA_TOKEN --data-file -
echo "$SLACK_TOKEN" | gcloud secrets create SLACK_TOKEN --data-file -
gcloud artifacts repositories create docker-repo \
--repository-format=docker \
--location asia-northeast1
gcloud builds submit \
--config=cloudbuild.yaml \
--substitutions=_REPOSITORY="$REPO",_IMAGE="$IMAGE" .
リポジトリの更新時に自動でデプロイするためにトリガーの設定をします。 ※フォークしたリポジトリを使う必要があります。
OWNER=xxxxxx
gcloud beta builds triggers create github \
--name=trigger-slack-unfurl-kibela \
--repo-name=slack-app-unfurl-kibela \
--repo-owner=$OWNER \
--branch-pattern='^master$' \
--build-config=cloudbuild.yaml \
--substitutions=_REPOSITORY="$REPO",_IMAGE="$IMAGE"
Slack AppにURLを登録
Event Subscriptions
を開き、Request URL
にhttps://{app name}.herokuapp.com/
を入力するVerified
と表示さたらEnable Events
をOn
にしてSave Changes
動作確認
SlackでKibelaのリンクを含んだメッセージを投稿してみてください。 下記のように展開されるはずです。