#oauth-2.0 #slack #slack-api
Вопрос:
Я создаю приложение Slack, и когда я устанавливаю приложение в своем рабочем пространстве, во время потока Oauth оно спрашивает меня, на какой канал я хочу отправлять сообщения. Затем мне нужно выбрать из всех моих каналов в меню выбора (одним из которых является мое приложение slack), где получать сообщения.
Когда я устанавливаю что-то вроде приложения Jira Cloud Slack, оно не спрашивает меня, какой канал я хочу использовать для получения сообщений, оно просто устанавливает приложение, и я получаю сообщения в облачном канале Jira. Я хотел бы попытаться настроить свое приложение slack таким образом, чтобы пользователю не нужно было выбирать канал, но вместо этого сообщения автоматически переходили на канал приложения (например, Jira).
Кто-нибудь знает, какие настройки (возможно, области Oauth?) Мне нужно, чтобы это произошло?
Ответ №1:
Вы используете входящие веб-крючки Slack? Веб-крючки потребуют, чтобы вы указали канал, но использование входа с помощью Slack для аутентификации (или просто аутентификация с помощью их OAuth v2) этого не делает. Также убедитесь, что вы используете самую последнюю версию приложений Slack, которые включают детализированные области-не уверены, что устаревшие приложения работают так.
Комментарии:
1. Я использую веб-крючки, и сообщения отправляются пользователям по каналу, который они выбирают при первой установке приложения. Я также использую вход с помощью Slack, а также поток OAuth2 для аутентификации пользователей. У меня есть команда косой черты, которая возвращает ссылку для входа, по которой пользователь может щелкнуть, чтобы запустить поток OAuth (поэтому я знаю идентификатор канала). Я просто не могу понять, как по умолчанию использовать этот канал для получения сообщений, когда пользователь впервые устанавливает и «Разрешает»приложению отправлять им сообщения. У меня такое чувство, что это связано с областями, но я не могу понять, что мне нужно установить для областей, чтобы это произошло.
2. Я не думаю, что вам вообще нужно использовать веб-крючки здесь. Вы можете отправлять сообщения пользователям с помощью метода chat.postMessage , просто укажите
chat.write
область действия своего бота и передайте токен аутентификации и идентификатор пользователя в качестве целевого канала. У вашей ссылки аутентификации не будет раскрывающегося списка каналов, как только вы отключите входящие веб-ссылки, вы обработаете эту логику вручную, чтобы создать запрос на конечную точку API postMessage.3. Решение: я просил область действия бота «входящие веб-крючки» в моем потоке OAuth, который требует, чтобы пользователь указал канал для их приема. Оказывается, мне не нужна была эта область, поэтому я удалил ее из своих областей Oauth, и теперь, когда пользователь устанавливает приложение, его не просят выбрать канал.