SlackのAPIをLegacy Token から変更した


概要

  • Slackのレガシートークンを使ってchannels.history APIを使っていたのをApp作成 & conversations.history に置き換えた。

はじめに

以前、友人に頼まれてSlackの履歴をGAS取得して他のチャンネルに流すツールを作っていました。 https://kishaku-kangen.blogspot.com/2019/10/slack-salesforceslack-slack.html

その時から「あー、トークン使ってAPI使うの非推奨って書いてあるな」と認識しつつ、レガシートークンを使っていました。が、新規発行しないしいつ廃止されるかもわからないってことなのでようやく重い腰を上げました。

やったこと

下記の手順で実施します。

  1. Slackアプリの作成@Webブラウザ
  2. bot(app) を対象チャンネルに追加@Slack
  3. GASの修正

Slackアプリの作成@ブラウザ

Slackの下記ページからCreate New App を押す https://api.slack.com/apps/

アプリ名(任意でOK)を入力しと該当ワークスペースを選択する


Basic Information > Building Apps for Slack > Add features and functionality >Permissions を選択

  

遷移先の画面でScopeを追加する。今回(conversations.history) には下記が必要。 必要なものはここから確認できる

  • channels:history
  • groups:history
  • im:history
  • mpim:history
 

Scopes を追加したら上にスクロールして Install App to Work Space を押下 > 許可する 

遷移先の画面に表示された Bot User OAuth Access Token の内容をどこかにメモ


bot(app) を対象チャンネルに追加

Slackの履歴を取得したいチャンネルを開いて下記を実行し、作成したアプリをチャンネルに追加 /invite @アプリ名 


チャンネル選択 右クリック「リンクをコピー」してチャンネルのURLを取得(スラッシュで区切って一番最後のなやつ) 例) https://hogehoge.slack.com/archives/HOGE4242774 なら「HOGE4242774」

発行したトークンとチャンネルを使ってブラウザからチャンネルの履歴を取れればOK

https://slack.com/api/conversations.history?token=【トークン】&channel=【チャンネル】

.例)https://slack.com/api/conversations.history?token=xoxb-123456789012-123456789012-HOGEHOGE4771fugapiyohoge&channel=HOGE4242774

GAS を修正する

ブラウザからチャンネルの履歴を取得できることを確認したら、GASを修正する。 GAS の先頭にあるTOKEN/CHANNEL を今回取得したものに変更する(CHANNELは変更しなくてOKかも)

var TOKEN = 'xoxp-11223344566-778899001122-11223344566-fugapiyohogeHoge1122';
var CHANNEL = 'HogeFufa';

ここを変更

0 件のコメント :

コメントを投稿