🐈
Slack API でメッセージやチャンネル一覧が取得できない時。
Slack API でinvalid_authが返ってくる場合について書いています。
1. まずTokenがきちんと使えるのか確認。
ここから確認できます。
https://api.slack.com/methods/auth.test/test
こんな感じになっていたらOK.
{
"ok": true,
"url": "https://subarachnoid.slack.com/",
"team": "自分のワークスペース名",
"user": "bot",
"team_id": "T0G9PQBBK",
"user_id": "W23456789",
"bot_id": "BZYBOTHED"
}
2. 任意のメソッドが通るかテストする(トークンのスコープミスなどを確認できる)
例えば、チャンネルを取得するためにconversations.listを使う場合、取得したTokenで本当に動くかを確認します。
ここでテストできます↓
※動かなければ、おそらく必要なスコープが設定されていないので、公式apiを見ながら必要なスコープを追加します。
https://api.slack.com/methods
必要なスコープは、conversations.listであればRequired scopes部分で確認できます。
3.TOKENの渡し方を確認する。
参考:公式Argumentsより、
Token:
Authentication token bearing required scopes. Tokens should be passed as an >HTTP Authorization header or alternatively, as a POST parameter.
とあるので、TOKENはhttpヘッダーとして渡してあげる必要があります。
つまり、
url = "https://slack.com/api/メソッド名?token=TOKEN"
のような形では動かず、
url = "https://slack.com/api/メソッド名" //基本のURL
const options = {
"headers": { 'Authorization': 'Bearer ' + TOKEN }
};
let response = UrlFetchApp.fetch(url,options);
のようにheaderとして、別でTOKENを指定しurlと一緒に渡す必要があります。
4.その他
・urlにスペースが入ってしまっている。
・スペルミス
などがあるかもしれません。
Discussion