3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SlackはRTMをサポートしなくなるようです

Posted at

Slack は RTM をサポートしなくなるようです

先日、slackbotでを新しくBotを作成しようとした際に

動かず困ったので調べてみたところ、SlackはRTMのサポートを終了する ということが判明しました。

現状の回避策と、詳細をまとめてみることにします。

slackbotを使ったBotの作成

GitHub - slackbot

pipパッケージで、簡単に使えるBotフレームワークです。

利用している人も多く見かけます。

Based on slack Real Time Messaging API

slackbot はRTM APIを利用してBotを比較的簡単に実装できるように作られています。

新しく作成したApp Tokenでは、どうやらslackbotが動かないぞ

新しくSlack Botを作成しようとして、環境を構築しましたが

slacker.Error: missing_scope

👆のエラーで異変に気付きました。

Scope を修正してみた

Slack API - Your Apps から、該当のAppを選択し

OAuth & Permissions の項目から Scope を確認しました。

以前は、Scopesを定義しなくても Bot Token を利用することで

自動的にBot向けのScopeが内部で承認されていました。

しかし、必要なScopeを追加してもエラーは発生し続けました。

余談

slackbot側を調べてみました。

def start(self, simple_latest=False, no_unreads=False, mpim_aware=False):
    return self.get('rtm.start',
                    params={
                        'simple_latest': int(simple_latest),
                        'no_unreads': int(no_unreads),
                        'mpim_aware': int(mpim_aware),
                    })

Pythonのエラーメッセージから、👆の関数でエラーとなっている事がわかります。

Slackの公式ドキュメントを読んでみる

Slack - Real Time Messaging API

RTMに関することは、👆に書いてあるようです。

読む前に、目立つセクションがありました。

New Slack apps may not use any Real Time Messaging API method.
Create a classic app and use the V1 Oauth flow to use RTM.

要約すると

  • 新しいAppはRTMを利用できない
  • RTMを使いたいんだったら Classic app を使ってね

ということです。

Classic app の作成

Classic app の作成は、Slack - Real Time Messaging API の最下部のリンクから行えます。

Create a Classic Slack App

Appを作成したら、 Legacy bot user を追加する必要があります。

Screen Shot 2020-11-15 at 10.07.11.png

Classic app の Scopesを見てみましょう

Screen Shot 2020-11-15 at 10.46.45.png

bot の OAuth Scopeが deprecated となっていることがわかります。

スコープのアップデートには要注意

Slack API - Your Apps

App Home へアクセスすると、 Tools セクションに Update to Granular Scopes というのが存在します。

つまりは、Slackは 以前のBot向けスコープから

より細かいスコープへ移行することを推薦しています。

しかし、移行しようとすると下記メッセージが表示されます。

The RTM API is not accessible to updated Bot Tokens.
If your app requires RTM functionality, please exit this update and continue using your existing scopes.

移行すると、RTM APIは利用できなくなります。

Classic app のサポートは、明示的に期間が定められている訳ではなさそうですが

今後RTMを利用したSlack Botの作成は、別の手段へ移行する必要がありそうです。

3
3
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
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?