Slack-Python-Onboarding-Tutorialをできるように Slack側の準備をします。

前回は、Slack-Python-Onboarding-Tutorial をできるようにローカル環境に必要なものを準備しました。

ponsuke-tarou.hatenablog.com

今回は、Slack-Python-Onboarding-Tutorialをできるように Slack側の準備をします。

チュートリアル用のSlack AppとBotユーザーを作成します。

github.com

新規にSlack Appをapi.slack.comで作ります。

api.slack.com
f:id:ponsuke_tarou:20190111165403p:plainf:id:ponsuke_tarou:20190111165424p:plainf:id:ponsuke_tarou:20190111165802p:plain

作ったAppがSlackと対話できるようにBotユーザを作ります。

f:id:ponsuke_tarou:20190111171209p:plainf:id:ponsuke_tarou:20190111171222p:plain

作ったBotにイベントを登録します。

github.com

Ngrokを起動して一時的に外部からローカルへアクセスするURLを取得します。

$ ngrok http 8080

ngrok by @inconshreveable                                                                                                            (Ctrl+C to quit)
                                                                                                                                                     
Session Status                online                                                                                                                 
Session Expires               7 hours, 57 minutes                                                                                                    
Version                       2.2.8                                                                                                                  
Region                        United States (us)                                                                                                     
Web Interface                 http://127.0.0.1:4040                                                                                                  
Forwarding                    http://cd36dfb5.ngrok.io -> localhost:8080                                                                             
Forwarding                    https://cd36dfb5.ngrok.io -> localhost:8080                                                                            
                                                                                                                                                     
Connections                   ttl     opn     rt1     rt5     p50     p90                                                                            
                              0       0       0.00    0.00    0.00    0.00          

app.pyを起動します。

Ngrokを起動したターミナルとは別のターミナルを起動してapp.pyを起動します。

(slackTutorial) $ python3 app.py 
 * Running on http://127.0.0.1:8080/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger pin code: 218-532-055

Slackの[Enable Events]をONにします。

[Request URL]には、{Ngrokで表示されているURL} + {app.pyのhearsメソッドのルートである/listening} の値を設定します。
ちゃんとサーバを使用している場合は、そのサーバのURLを設定します。
{Ngrokで表示されているURL}は、起動のたびに変わるのでその都度[Change]ボタンで[Request URL]を変えます。
f:id:ponsuke_tarou:20190128225347p:plain

[Subscribe to Bot Events]でBotにイベントを登録します。

ページの下の方にある[Subscribe to Bot Events]の[Add Bot User Event]ボタンでBotにイベントを登録します。
登録が終わったら[Save Changes]ボタンで保存します。
f:id:ponsuke_tarou:20190128230532p:plain

環境変数にアプリの資格情報を設定します。

チュートリアルBotでは、osモジュールを使用して環境変数からアプリの資格情報を読み込んで利用します。
そのため、環境変数に資格情報を設定する必要があります。

# bot.py
# -*- coding: utf-8 -*-
u"""lack-Python-Onboarding-TutorialのBotクラス."""
import os
import message
# 省略
        # When we instantiate a new bot object, we can access the app
        # credentials we set earlier in our local development environment.
        self.oauth = {"client_id": os.environ.get("CLIENT_ID"),
                      "client_secret": os.environ.get("CLIENT_SECRET"),
                      # Scopes provide and limit permissions to what our app
                      # can access. It's important to use the most restricted
                      # scope that your app will need.
                      "scope": "bot"}
        self.verification = os.environ.get("VERIFICATION_TOKEN")
# 省略
  1. アプリの[Basic Information]ページで、[Client ID][Client Secret][Verification Token]をコピーします。
    • https://cloud.githubusercontent.com/assets/4828352/20548888/198e2270-b0dc-11e6-9a92-5fe3842be4ba.png
  2. .bash_profileなどで以下のように環境変数を設定します
    • f:id:ponsuke_tarou:20190129234300p:plain
      .bash_profileの場合

認証の設定を行います。

github.com

  1. 左サイドのメニューにある[OAuth & Permissions]からページを開いて[Redirect URLs]を設定します。
  2. [Add New Redirect URL]ボタンを押下してRedirect URLを入力し、[Add]ボタンで追加します。
    • Redirect URLには、{Ngrokで表示されているURL} + {app.pyのthanksメソッドのルートである/thanks} の値を設定します。
    • {Ngrokで表示されているURL}は、起動のたびに変わるのでその都度[Change]ボタンで[Request URL]を変えます。
  3. [Save URLs]ボタンを押下して保存します。

f:id:ponsuke_tarou:20190128233556p:plain

思い出の一枚

f:id:ponsuke_tarou:20190111171304j:plain