При запросе API отсутствует область действия слабого бота

Я сделал слабое приложение, в котором у меня есть бот. Я выбрал каналы: история, каналы: чтение, каналы: запись в соответствии с моей областью разрешений, а также я прошел границы

"scope":"bot channel:history channel:read channel:write"

при выполнении проверки oauth2 (с использованием python), и я получил ответ, в котором область видимости

"scope":"identify,bot,channels:history,channels:read,channels:write"

вместе с токенами доступа клиента и бота.

Теперь, когда я выполняю вызов api для получения истории канала, на который приглашен мой бот, я получаю

{ 
  ok: false,
  error: 'missing_scope',
  needed: 'channels:history',
  provided: 'identify,bot:basic' 
}

Может кто-нибудь, пожалуйста, скажите мне, где я ошибаюсь. Как я могу ПРЕДОСТАВИТЬ каналы: история в моем вызове API. Это действительно сводит меня с ума. Должен ли я использовать токен клиентского доступа, то есть xoxp-xxxx, вместо токена бота, то есть xoxb-xxxx? '

Спасибо!


person saf1    schedule 18.05.2017    source источник


Ответы (2)


Для людей, у которых возникнет эта проблема в будущем;

ваш интегрированный бот имеет полный доступ к API-интерфейсу Slack, тогда как у бота в приложении Slack нет, так как он будет использоваться публично. Когда вы успешно завершите oauth2, вы должны получить 2 токена, user access token и bot token. user token используется для чтения истории из любого канала / группы, а bot access token используется для записи в них. Это означает, что вам постоянно нужно переключаться с user token на bot access token в своем приложении.

введите описание изображения здесь

Также помните, что пользователь-бот ДОЛЖЕН быть участником частного канала, к которому вы хотите, чтобы он подключился.

Надеюсь, это поможет.

Ps, если кто-то нашел способ лучше, не стесняйтесь отвечать ниже.

person saf1    schedule 29.05.2017
comment
Это помогло мне передать эту конкретную ошибку, но сразу после нее получил not_in_channel. Я мог бы обойти это, добавив chat:write.public в область действия бота (как объясняется здесь: stackoverflow.com/questions/60402410/) - person nocibambi; 20.11.2020

Поскольку вы не упомянули об этом: вам также необходимо указать все необходимые области на странице администратора для вашего приложения Slack в разделе «Oauth & Permission Scopes».

person Erik Kalkoken    schedule 18.05.2017
comment
Да, в моем Oauth и разрешении, у меня есть бот и каналы: история, каналы: чтение и каналы: разрешения на запись. @erikkalkoken, я просто отредактирую свой вопрос, чтобы добавить это - person saf1; 19.05.2017