LoginSignup
1
2

More than 3 years have passed since last update.

Slack App(bot)のgranular permissionsの対応方法

Posted at

はじめに

Slack App(bot)でgranular permissions(細かな権限設定)が出来るようになりました。

アプリの管理画面にいくと、このように注意書きが表示されるようになっていました。
スクリーンショット 2020-03-06 14.29.15.png

https://medium.com/slack-developer-blog/more-precision-less-restrictions-a3550006f9c3
https://api.slack.com/authentication/migration?utm_medium=referral&utm_source=apiblog&utm_campaign=fy20-Q401-granular-permissions
詳細は上記のBlogと公式ドキュメントに記載してありますが、簡単に要約すると以下のようです

  • Slack Appでより細かな権限設定=granular permissionsを設定出来るようになった
  • 2020/2/21以降、granular permissionsに対応していない新規アプリの提出は拒否される
  • Slack App Directoryにある既存のアプリも2020年度の終わりまでに移行しなければならない

現在、Kiara TranslationというSlack上で動く自動翻訳アプリをリリース&Slack App Directoryに公開しているのですが、最近そのgranular permissionsに対応しました。

日本語ドキュメントも少なかったので、その方法を公開することで少しでもgranular permissionsにupdateする方の助けになれば幸いです。

対応方法

1. Slack Dashboard上で必要なスコープを選ぶ

自分のSlack AppのダッシュボードのOAuth & Permissions画面に行きます。
スクリーンショット 2019-08-16 12.10.21.png

こちら「OAuth Scope」に「bot」と記載してあると思いますが、このScopeは以下の画像のように多くのScopeを含んでいます。
しかし、今回のupdateによって必要最低限のScopeを設定出来るようになるというわけです。
(この対応をすることでセキュリティが向上しますし、Slack Appを追加する時に表示されるAuthorize画面にて、必要最低限のScopeだけが表示されるので、ユーザーさんの安心感も異なってくるかと思います)

先ほどの画面で「update scopes」を選択して、必要最低限のスコープだけをここで選びましょう。
スクリーンショット 2019-08-16 12.10.21.png

今回は以下のようなScopeを選択しました。(後からでも変更可能です)
「Yes, migrate my app」を選択します。
スクリーンショット 2019-08-16 12.10.21.png

記載してあるように、authentication URLを変更する必要があるので、このURLはどこかに保存しておきます。
今回の場合は以下のURLになります(clinet_idはご自身のものに変更してください)
https://slack.com/oauth/v2/authorize?client_id=*****&scope=app_mentions:read,channels:read,chat:write,groups:read

問題なければ「I've updated my app」を選択します。
スクリーンショット 2019-08-16 12.10.21.png

再び「OAuth & Permissions」画面に戻ります。
今回は「Bot Token Scopes」だけでなく「User Token Scopes」の説明もしたいので、「im:history」を新たに追加しました。
スクリーンショット 2019-08-16 12.10.21.png

2. URLを変更する

次はURLを新しいものに変更していきます

authorizev2/authorizeに変更

公式ドキュメント:https://api.slack.com/authentication/oauth-v2
今までhttps://slack.com/oauth/authorizeとなっていたauthenticationのURLを
先ほどの手順でコピーした新たなURL(https://slack.com/oauth/v2/authorize)に変更します。
(v2が追加される形ですね)

注意点
先ほどコピーしたURLは
https://slack.com/oauth/v2/authorize?client_id=*****&scope=app_mentions:read,channels:read,chat:write,groups:read
だったと思うのですが、今回は手順の最後に「User Token Scopes」で、「im:history」を追加したと思います。

「User Token Scopes」はuser_scopeパラメータをURLに含める必要があるみたいなので、最終的に置き換えるURLは以下のようになることに注意してください。
https://slack.com/oauth/v2/authorize?client_id=*****&scope=app_mentions:read,channels:read,chat:write,groups:read&user_scope=im:history

oauth.accessoauth.v2.accessに変更

公式ドキュメント:https://api.slack.com/authentication/oauth-v2

URLhttps://slack.com/api/oauth.access
https://slack.com/api/oauth.v2.accessに変更します

こちらResponseもoauth.accessoauth.v2.accessで異なるため、以下の資料を参考にしながらコードを変更して下さい。

oauth.access: https://api.slack.com/methods/oauth.access
oauth.v2.access: https://api.slack.com/methods/oauth.v2.access

3. 審査に出す

後はいつものように審査に出して承認されれば完了となります

※ユーザーさんに新たなScopeを適応もらうためには、アプリを再インストールする必要があります。
したがって、

  • 旧Scopeでもslack appは動作する
  • 新Scopeに対応し、再インストールしてもらう旨を何かしらの方法(direct messageなど)で通知する

なども必要に応じて確認出来れば良いと思います。

スクリーンショット 2020-03-06 16.10.45.png

リンク集

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2