icon

非推奨になってるSlackのRTM APIは今も使えるのだけど、使えているAppと全く同じ設定にしたClassic Appでも弾かれるので徹底的に比較して調べてみた。
アプリのClassicかどうかやパーミッションの設定は無関係で、RTM APIに1回でも成功してるとフラグが立つらしく以後使えるようになるようだ。

icon

つまり、oauth/authorizeで古いスコープ(client)で認可したトークンでrtm.connectを成功させれば、以後はそのAppが新しい形式だろうがoauth/v2/authorizeで新しいスコープでどんな指定で認可してようが、RTM APIが使える。
下位互換のための機能だろうから、いつかは使えなくなるだろうけど。

icon

SlackのSocket Mode、3日前に正式公開されたばかりだったみたい。
medium.com/slack-developer-blo
アプリの設定で有効化するとアプリレベルのトークンができる。これでapps.connections.open(CORS制限ありだった)を呼ぶとWebSocketのURLが返ってくるので繋ぐと、Events APIがサーバー立てずに受け取れた。

icon

現状のSocket ModeはCORSがなぜか非対応でJavaScriptだけで閉じて処理できないのと、アプリトークンなので1ユーザーとして繫げられるわけではないのがネックかな。
リアルタイムクライアントの実装用ではなく、組織に閉じたボットの実装用として考えられてるみたい。

icon

Slack APIを新しい仕様に移行中。Slack APIは変更が激しい。
RTM APIが廃止されることは知っていて、そのための処理だけ古い手法でどうにかならないかなと調べてたら、Socket Modeなる新仕様が発表されてたことを知る。RTM APIの代替がこれになりそう。ちゃんと考えてくれてたんだ。