KibelaリンクをSlack上で展開してくれる君
deglacerはkibelaのリンクがSlackに投稿された際に、それを展開してくれるSlack Appです。以下の機能を備えています。
- kibelaの記事の展開
- kibelaのコメントの展開
deglacerは木べらを用いる調理手法である、déglacer(デグラッセ)から命名しました。
- Kibelaアクセストークン取得
- Slack App作成
- deglacerのデプロイ
- 2で作ったappに、3のURLを登録する
- Slack Appのbotユーザーをチャンネルに招待する
以下のURLからアクセストークンを作成します(KIBELA_TOKEN
)。権限はreadのみで大丈夫です。
https://my.kibe.la/settings/access_tokens
- https://api.slack.com/apps の Create New App からアプリ作成
- 左メニュー OAuth & Permissions を開き、Scopesでlink:writeを追加
- 左メニュー Event Subscriptions を開く
- App unfurl domains を展開し、 Add Domain で、 {
KIBELA_TEAM
}.kibe.la を入力し、Save Changes
- App unfurl domains を展開し、 Add Domain で、 {
- 左メニュー Install App を開き、 Install App to Workspace -> Allow
- OAuth Access Token が表示されるのでメモ (
SLACK_TOKEN
) - Basic Information を開き App CredentialsのSigning Secretをメモ (
SLACK_SIGNING_SECRET
)
※後で戻ってくるので、Slack Appの管理画面は開いたままにしておく。
deglacerはGoで書かれたWebアプリケーションなので、任意の場所で簡単に動かせますが、HerokuやGoogle App Engineを利用するのがより簡単でしょう。動作のためには以下の環境変数が必要です。
KIBELA_TEAM
: Kibelaのチーム名KIBELA_TOKEN
: 手順1で取得したKibelaのアクセストークンSLACK_TOKEN
: 手順2-5で取得したSlack AppのトークンSLACK_SIGNING_SECRET
: 手順2-6で取得したリクエスト署名検証secret
以下のボタンからデプロイできます。
- 事前にgcloudコマンドのインストールやGCP上のアプリの作成をおこなう
- 当リポジトリをcloneする
secret.yaml
に設定項目を記述する(secret.yaml.example
を参考に)gcloud app deploy
でデプロイ
- 左メニュー Event Subscriptions を開き、 Request URL に 3でデプロイしたdeglacerのURLを入力
- Verified と表示されたら Enable Events を On にして Save Changes
Bot名は、左メニューのApp Homeから確認してください。
これで準備完了です。
deglacerはotofune/slack-unfurl-kibelaのRuby実装を参考に移植しました。設定にあたっては、higebuさんのエントリが非常に参考になりました。