Узел js - слабая интеграция API - ошибка: произошла ошибка API: channel_not_found
Я очень новичок в Slack API интеграции с использованием узла JS. Я пытаюсь получить историю каналов. Даже я попробовал с chat.postMessage. Но это каждый раз приводило меня к следующей ошибке:
{ Error: An API error occurred: channel_not_found
at platformErrorFromResult (..\node_modules\@slack\client\dist\WebClient.js:747:42)
at __await.makeRequest.then (..\node_modules\@slack\client\dist\WebClient.js:464:39)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
code: 'slackclient_platform_error',
data:
{ ok: false,
error: 'channel_not_found',
scopes:
[ 'identify',
'bot',
'commands',
'channels:history',
'chat:write:user',
'chat:write:bot' ],
acceptedScopes: [ 'channels:history' ]*** } }
Вот мой фрагмент кода,
const { WebClient } = require('@slack/client');
const token = "OAuth Access Token"; // passing OAuth Access Token
const web = new WebClient(token);
web.channels.history({ channel: appID})
.then((res) => {
console.log('Message sent: ', res.ts);
})
.catch(console.error);
Может кто-нибудь, пожалуйста, помогите мне, что мне здесь не хватает?
- Когда я должен использовать "токен доступа OAuth пользователя бота" и "токен доступа OAuth"?
- Что такое идентификатор канала?
- Идентификатор приложения называется идентификатором канала?
заранее спасибо
1 ответ
Бот-токен против пользовательского токена
Как правило, вы действуете от имени своего пользователя бота с помощью токена бота и от имени пользователя, который установил ваше приложение Slack с помощью токена пользователя.
Например, вы можете получить доступ к частному каналу с помощью своего токена бота, если ваш бот-пользователь является участником этого частного канала. Соответственно, токен пользователя дает вам доступ ко всем частным каналам, членом которых он является.
Кроме того, есть некоторые методы API, которые не работают с бот-токеном и поэтому требуют использования пользовательского токена. (Проверьте документацию для каждого метода API, чтобы узнать, какой вам нужен). В общем, я бы рекомендовал придерживаться токена бота всякий раз, когда это возможно.
ID канала
Идентификатор канала - это идентификатор канала, уникальный для вашей рабочей области. В общем, все объекты в рабочем пространстве Slack (например, пользователи, каналы, файлы, приложения, сообщения) имеют каждый свой собственный идентификатор, и большинство методов API требуют использования этого идентификатора, если вы хотите получить доступ к объекту.
Чтобы получить идентификатор объекта, вы можете использовать соответствующие методы API списков, которые существуют для большинства объектов. например для каналов вызова channels.list
и просмотрите список, чтобы найти идентификатор для канала, который вы ищете (например, сравнивая название канала).
Совет для профессионалов: Вы можете вызывать большинство методов API прямо из браузера, что может быть очень удобно, если вы просто хотите быстро найти идентификатор. например https://slack.com/api/channels.list?token=TOKEN
чтобы получить список каналов.
Идентификатор приложения и идентификатор канала
Нет. Идентификатор приложения и идентификатор канала - это разные идентификаторы и не имеют ничего общего друг с другом. См. Раздел выше для получения подробной информации о том, как получить идентификатор канала.