Slack threads and chat integration plugin transcripts

For ‘Private Channels’ you need to add the groups:history scope. For “Direct Messages” you need to add the im:history scope. You will need to ‘reinstall’ the app for changes to scopes to take effect (Slack’s UI should have prompted you to do this).

Are you seeing anything at /logs when the errors occur?

2 лайка

I tried adding these scopes, and reinstalling:

groups:history
im:history
mpim:history

Still getting that 422, but don’t see anything obvious in the Discourse logs in the admin panel (this is a hosted instance, so I don’t have direct access to other logs).

1 лайк

I used the /discourse post command from a public channel to great effect… but threads are now more common in many channels than main channel conversations, so still hopeful that some day this will work in a thread…

Update: w00t! just tried it again and it worked!

/discourse post https://ourdomain.slack.com/archives/C0591LA4X/p1529529151000359?thread_ts=1529528304.000177&cid=C0592LA4X

as did:

/discourse post thread https://ourdomain.slack.com/archives/C0592LA4X/p1529528304000177

Another update: I was also able to post a thread from a private channel. :tada:

9 лайков

I got an error when using post transcript in a public channel:

{
	"message": "Job exception: undefined method `[]' for nil:NilClass\n",
	"progname": null,
	"severity": 3,
	"backtrace": "/var/www/discourse/plugins/discourse-chat-integration/lib/discourse_chat/provider/slack/slack_message.rb:38:in `block in text'\n/var/www/discourse/plugins/discourse-chat-integration/lib/discourse_chat/provider/slack/slack_message.rb:30:in `gsub'\n/var/www/discourse/plugins/discourse-chat-integration/lib/discourse_chat/provider/slack/slack_message.rb:30:in `text'\n/var/www/discourse/plugins/discourse-chat-integration/lib/discourse_chat/provider/slack/slack_message.rb:62:in `processed_text_with_attachments'\n/var/www/discourse/plugins/discourse-chat-integration/lib/discourse_chat/provider/slack/slack_transcript.rb:155:in `block in build_slack_ui'\n/var/www/discourse/plugins/discourse-chat-integration/lib/discourse_chat/provider/slack/slack_transcript.rb:155:in `map'\n/var/www/discourse/plugins/discourse-chat-integration/lib/discourse_chat/provider/slack/slack_transcript.rb:155:in `build_slack_ui'\n/var/www/discourse/plugins/discourse-chat-integration/lib/discourse_chat/provider/slack/slack_command_controller.rb:95:in `block in process_post_request'\n/var/www/discourse/lib/scheduler/defer.rb:70:in `block in do_work'\n/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/rails_multisite-2.0.4/lib/rails_multisite/connection_management.rb:63:in `with_connection'\n/var/www/discourse/lib/scheduler/defer.rb:68:in `do_work'\n/var/www/discourse/lib/scheduler/defer.rb:59:in `block (2 levels) in start_thread'",
	"count": 9,
	"env": {
		"message": "Running deferred code 'Processing slack transcript request'"
	},
	"protected": false
}
1 лайк

Hello, did you managed to fix this? I have the same one.

To close the loop here - @mbugowski kindly contributed a pull request to fix the issue:

@tony612 if you update to the latest version it should now work.

5 лайков

Сейчас слэш-команды работают в ветках обсуждений Slack! Смотрите :backhand_index_pointing_down:t3:

Есть ли шанс, что мы увидим поддержку слэш-команды в ветке, которая публикует транскрипцию? :crossed_fingers:t3:

6 лайков

Мне очень хочется, чтобы это было правдой, потому что это сильно упростило бы мою жизнь, но в документации Slack API я ничего об этом не вижу. Неужели они предоставили Giphy специальный доступ для альфа-тестирования? Видите ли вы какую-то документацию, которой я не вижу?

Возможно, ещё одна деталь: сегодня на работе один человек в ветке пожаловался, что Slack не позволяет использовать /giphy в ветках, и прикрепил скриншот, где Slack сообщает, что это не поддерживается в ветках. В то же время другой человек успешно использовал /giphy в той же ветке. Похоже, что здесь может проводиться A/B-тестирование.

1 лайк

Отличные новости! Я только что объединил изменение в плагин, которое добавляет поддержку API «Ярлыки» (Shortcuts) в Slack. Теперь вы можете нажать в теме, выбрать «Опубликовать в Discourse», и вам будет предложена кнопка, ведущая прямо в Discourse. Больше никаких проблем с командами-слэшами или постоянными ссылками на темы!

Чтобы это работало, вам понадобится последняя версия плагина chat-integration, а также необходимо обновить настройки вашего приложения Slack, выполнив новый шаг настройки:

Как всегда, дайте знать, если у вас есть какие-либо отзывы :slight_smile:

cc @mcwumbly @galligan @mcdanlj

9 лайков

:star_struck::star_struck::star_struck:

Невероятно!

Я только что попытался добавить эту функциональность, но, к сожалению, получил ошибку:

Ошибка: не удалось получить историю канала из Slack

Я попробовал это на нашем самом последнем сообщении в Slack.

Следовали ли вы всем инструкциям по настройке в этой теме? В частности, предоставили ли боту все необходимые права доступа?

Я нашел проблему! Наше приложение для интеграции чата не было в канале, из которого я пытался опубликовать сообщение. После добавления приложения в канал я смог опубликовать транскрипт. Спасибо.

  • Возможно ли автоматически добавлять приложение для интеграции чата во все каналы Slack, как сейчас, так и в случае создания новых каналов в будущем?

  • Изменение текста кнопки «Продолжить на Discourse» на что-то вроде «Создать транскрипт» или название ярлыка (по умолчанию «Опубликовать на Discourse», но настраиваемое) имело бы смысл с точки зрения UX, учитывая, что не все сайты Discourse называют себя Discourse.

2 лайка

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

:+1: отличное замечание. Мы, безусловно, можем изменить значение по умолчанию, чтобы убрать слово «Discourse». Но тем временем вы можете найти в панели администратора текст «Продолжить на Discourse» и изменить его на любой другой: Customize text in Discourse

Редактирование: текст кнопки по умолчанию теперь Продолжить на форуме

4 лайка

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

Проблема в том, что в 1% случаев всё, кажется, работает, см. здесь:

Но в 99% случаев в публичных каналах я получаю ошибку: «Ошибка: не удалось получить список пользователей из Slack»

А в личных сообщениях: «Ошибка: не удалось получить историю канала из Slack»

1 лайк