前回までのあらすじ
紹介の記事は書いたけどデプロイ方法がどこにも書いてなかった。1
今回はHerokuにデプロイをする手順をまとめます。
Herokuにデプロイをする前に準備する
事前準備1:Herokuのアカウントを用意する
インターネットで調べてください
事前準備2:SlackのAPIキーを発行する
上のページで発行できます。まだ一度も発行してない場合は「Create token」という緑のボタンがあるので押してください。
赤字で表示されてる xoxp-xxxxxxxxxxxxxxx
みたいな文字列がAPIキーです。なんでもできて危ないので大事にしてね。
事前準備3:Slackのアプリケーションキーを発行する
Twitterのアプリケーション登録みたいなやつです。
上のページから「Create a new application」ボタンで新規作成ができます。
「App Name」などそれぞれの項目は自由に埋めていただければ大丈夫です。
ただし、一番最後の「Redirect URI(s)」の欄は必ず
デプロイする予定のURL/auth/slack/callback
で登録してください。 https://togelack-demo.herokuapp.com
にデプロイするなら https://togelack-demo.herokuapp.com/auth/slack/callback
です。
ここをちゃんと設定しないと、ログインしようとしてもSlackちゃんが激おこになってログインできません。
Herokuにデプロイを始める
事前準備は以上なのでさっそくデプロイを始めます。
とはいえ、上記ページのREADMEにHerokuボタンが付いているのでポチっとすると各種、設定入力画面に行って各種入力をするだけでデプロイ完了です。Herokuボタンべんり。
SLACK_TOKEN
さっき発行したAPIキーを入力してください。
主にカスタム絵文字の取得とかのために使ってます。
SLACK_CLIENT_ID / SLACK_CLIENT_SECRET
先ほど作成したSlackのアプリトークンを入力してください。
SLACK_CLIENT_IDが左のやつ、SLACK_CLIENT_SECRETが右のやつです(Showボタンを押すと表示されるよ)
SLACK_TEAM_ID / SLACK_TEAM_NAME
- TEAM_ID: Slackの内部的なチームID
- TEAM_NAME: xxxx.slack.com のxxxx部分
チームIDの確認はSlackのAPIを叩くとわかります。
めんどくさい!という方はSlack公式の↓のページにアクセスするとWeb上からAPIを実行できるので、チーム名を選択して送信ボタンを押すとチーム名がわかります。
{
"ok": true,
"team": {
"id": "T02ENE13K", // ← チームIDはここの部分だよ
"name": "toripota", // ← チーム名はここの部分だよ
"domain": "toripota",
...
よく考えたら、SlackのAPIトークン入力してるんだし、アプリ側で取得すればよかったんじゃ……という気もしてきた。そのうち自動化します。
SLACK_CHANNEL (オプション)
設定しなくても動きます。
まとめを作成した際にSlackに通知を飛ばす場合はここにチャンネルの名前を設定してください(general
とか)。基本的にpublicチャンネルであることが前提です。
未設定の場合は通知をしません。
↓こんなのが出ます
SLACK_ICON (オプション)
設定しなくても動きます。
Slack通知時のアイコン画像を設定します。
:hoge:
の絵文字スタイルと画像のURLを指定するスタイルの2パターンがあります。
< Herokuボタンのデフォルトでは「トゲトゲサボテンちゃん」といういろいろヤバそうなキャラが設定してあります。
REDIS_URL (オプション)
設定しなくても動きます。
サーバのキャッシュにRedisを使いたい場合は設定してください。
デプロイボタンポチー
デプロイが始まります。
よくある質問
ログインできない
アプリ作成時のログインのコールバックURLをちゃんと指定しないとログインできないのです><;
アイコンが表示されない
ユーザーがアイコン設定を変更するとURLが変わってしまうので、画像が表示されなくなることがあります。
そのユーザーの情報が更新されれば直るので、気長に待ってあげてください><;
バグがあった
プルリク待ってます><; https://github.com/rutan/togelack/pulls
-
それどころか不備があってデプロイするとバグってたよ٩(๑❛ᴗ❛๑)۶ (1件もまとめが無いとバグる不具合があったw) ↩