Узел 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);

Может кто-нибудь, пожалуйста, помогите мне, что мне здесь не хватает?

  1. Когда я должен использовать "токен доступа OAuth пользователя бота" и "токен доступа OAuth"?
  2. Что такое идентификатор канала?
  3. Идентификатор приложения называется идентификатором канала?

заранее спасибо

1 ответ

Бот-токен против пользовательского токена

Как правило, вы действуете от имени своего пользователя бота с помощью токена бота и от имени пользователя, который установил ваше приложение Slack с помощью токена пользователя.

Например, вы можете получить доступ к частному каналу с помощью своего токена бота, если ваш бот-пользователь является участником этого частного канала. Соответственно, токен пользователя дает вам доступ ко всем частным каналам, членом которых он является.

Кроме того, есть некоторые методы API, которые не работают с бот-токеном и поэтому требуют использования пользовательского токена. (Проверьте документацию для каждого метода API, чтобы узнать, какой вам нужен). В общем, я бы рекомендовал придерживаться токена бота всякий раз, когда это возможно.

ID канала

Идентификатор канала - это идентификатор канала, уникальный для вашей рабочей области. В общем, все объекты в рабочем пространстве Slack (например, пользователи, каналы, файлы, приложения, сообщения) имеют каждый свой собственный идентификатор, и большинство методов API требуют использования этого идентификатора, если вы хотите получить доступ к объекту.

Чтобы получить идентификатор объекта, вы можете использовать соответствующие методы API списков, которые существуют для большинства объектов. например для каналов вызова channels.list и просмотрите список, чтобы найти идентификатор для канала, который вы ищете (например, сравнивая название канала).

Совет для профессионалов: Вы можете вызывать большинство методов API прямо из браузера, что может быть очень удобно, если вы просто хотите быстро найти идентификатор. например https://slack.com/api/channels.list?token=TOKEN чтобы получить список каналов.

Идентификатор приложения и идентификатор канала

Нет. Идентификатор приложения и идентификатор канала - это разные идентификаторы и не имеют ничего общего друг с другом. См. Раздел выше для получения подробной информации о том, как получить идентификатор канала.

Другие вопросы по тегам