Създайте този слаб бот и придайте на канала си по-приятелско настроение.
Приветстването на нови потребители във вашия канал ги кара да се чувстват като у дома си, но следенето на всеки потребител, който се присъединява, може да бъде уморителна задача. Това е мястото, където идва ботът за посрещане на Slack. Ботът изпраща персонализирано съобщение за добре дошли на всеки нов потребител на канала. Винаги е онлайн, следователно няма да има закъснели съобщения за добре дошли.
Ще научите как да настроите идентификационните данни на вашия бот, да слушате събития в Slack и да изпращате съобщения обратно на потребителите.
Създаване на Slack бот и получаване на неговия API токен
Създавам Мързелив акаунт или влезте в съществуващия си. След това създайте a ново работно пространство на Slack за да тествате вашия бот, преди да го инсталирате в активното си работно пространство.
Влезте в новото си работно пространство. Slack автоматично създава случаен и общ канал за вас.
Обърнете внимание на секцията с приложения в долния ляв ъгъл на работното пространство. Това е мястото, където ще се появи нашият бот, когато го създадете. Навигирайте до
Slack API уебсайт.Кликнете върху Създайте приложение. Създайте приложението От нулата в прозореца, който се появява.
Дайте име на приложението си и изберете работното пространство, в което искате да го разработите.
След това щракнете върху Създаване на приложение бутон. Кликването ще ви пренасочи към страница, съдържаща основната информация за вашето приложение. Обърнете внимание на тайната за подписване под идентификационните данни на приложението. Вашият бот ще използва тайната за подписване, за да провери дали дадено събитие идва от Slack и не е било манипулирано по време на предаване.
Отидете на функцията OAuth & Permissions.
Под OAuth & Permissions отидете до Bot Token Scopes. Това е мястото, където ще добавите разрешенията за това, което вашият бот може да прави във вашето работно пространство. Добавете потребители: прочетете обхват. Този обхват ще позволи на вашия бот да вижда хората във вашето работно пространство. Освен това добавете чат: пиши обхват, който ще позволи на вашия бот да изпраща съобщения до работното пространство.
Върнете се до основната информация за вашия бот и щракнете Инсталирайте в Workspace.
Щракнете върху разреши на следващата страница, която се появява. Вече сте готови с инсталирането на бота във вашето работно пространство. Отидете до функцията OAuth & Permissions. Обърнете внимание на Bot User OAuth Token, който Slack генерира след инсталацията. Ботът ще се вижда в секцията за приложения на вашето работно пространство.
След като сте инсталирали бота в работното си пространство, можете да напишете кода, за да го контролирате.
Подготовка на вашата среда
Трябва да сте запознати с основите на Python за да следвате тези примерни кодове.
Създайте нова виртуална среда и а .env файл. Ще използвате .env файла, за да съхраните вашия токен и тайна за подписване, която трябва да запазите поверителна. Не трябва да качвате .env файла на публична платформа.
Изпълнете следната команда в терминал, за да инсталирате необходимите библиотеки:
pip инсталирайте slack-sdk pathlib dotenv flask slackeventsapi
Библиотеката slack-sdk ще ви предостави инструменти за изграждане на Slack приложения и интеграции, включително API методи, Web API клиенти и OAuth. pathlib и dotenv ще ви помогнат да заредите променливите на средата. flask ще ви помогне да обработвате HTTP заявките и отговорите. slackeventsapi ще ви предостави слушател на събития, който получава и обработва събития от Slack.
Пълният изходен код е достъпен в a GitHub хранилище.
Импортиране на необходимите библиотеки
Създайте нов файл на Python и започнете с импортиране на библиотеките, които сте инсталирали преди това, за да можете да използвате тяхната функционалност във вашия код.
импортиране slack_sdk като отпуснатост
импортиране операционна система
от pathlib импортиране Пътека
от dotenv импортиране load_dotenv
от колба импортиране Колба
от slackeventsapi импортиране SlackEventAdapter
OS модул на Python идва с езика, така че не е необходимо да го инсталирате. SlackEventAdapter е клас от модула slackeventsapi, който обработва събития от Slack API.
Настройване на Slack Bot
Създайте две променливи във файла .env. Наименувайте един SLACK_BOT_TOKEN и му присвоете Bot User OAuth Token. Наименувайте другия SLACK_SIGNING_SECRET и му присвоете тайната за подписване. Върнете се към файла на Python и създайте обект Flask. След това заредете променливите на средата от .env файла, като използвате функцията load_dotenv от модула dotenv.
приложение = Колба (__име__)
env_path = път ('.') / ".env"
load_dotenv (dotenv_path=env_path)
Създайте екземпляр на slack_event_adapter. Той ще обработва събития от Slack API, като използва променливата на средата SLACK_SIGNING_SECRET за удостоверяване на заявки.
slack_event_adapter = SlackEventAdapter (os.environ[„SLACK_SIGNING_SECRET“],
'/slack/events', приложение)
/slack/events е крайната точка, която Slack API ще използва за изпращане на събития.
Създайте екземпляр на WebClient, който ще изпраща съобщения до Slack API. Направете извикване на API, за да извлечете ID на бота.
клиент = застой. WebClient (токен=os.environ[„SLACK_BOT_TOKEN“])
BOT_ID = client.api_call("auth.test")['user_id']
Настройте съобщението, което ще изпратите на новите потребители, които се присъединят към канал. Инициализирайте празен набор, който ще следи приветстваните потребители.
GREETING_MESSAGE = „Здравейте, {user_name}, добре дошли в {channel_name}“ \
"канал! Вълнуваме се, че сте тук."
welcomed_users = set()
Можете да персонализирате поздрава по ваш вкус.
Създаване на функция за обработка на събитието „Канал, присъединен към член“.
Настройте слушател на събития. Той ще слуша събитието member_joined_channel.
@slack_event_adapter.on('member_joined_channel')
Дефинирайте функция, която ще извиквате, когато потребител се присъедини към канал. Използвайте функцията, за да извлечете потребителския идентификатор и идентификатора на канала от данните за събитието. Проверете дали потребителят е нов в канала. Ако не, вземете информацията за потребителя и канала с помощта на класа WebClient. Създайте персонализирано поздравително съобщение. Изпратете поздрава на канала
дефhandle_member_joined_channel(данни за_събитие):
user_id = event_data["събитие"]["потребител"]
channel_id = event_data["събитие"]["канал"]# Изпращайте поздравително съобщение само ако потребителят е нов
ако user_id нев добре дошли_потребители:
welcomed_users.add (user_id)user_info = client.users_info (user=user_id)
потребителско_име = потребителска_информация["потребител"][име]channel_info = client.conversations_info (channel=channel_id)
име_канал = информация_канал["канал"][име]поздрав = GREETING_MESSAGE.format (потребителско_име=потребителско_име,
име_на_канал=име_на_канал)
client.chat_postMessage (channel=channel_id, text=greeting)
Event_data съдържа цялата информация за събитието, в което даден потребител се е присъединил към канал.
Стартирайте приложението Flask и стартирайте скрипта. Ако се стартира като основна програма (не е импортирана като модул), стартирайте в режим на отстраняване на грешки и слушайте на порт 5000.
ако __име__ == "__основен__":
app.run (debug=Вярно, порт=5000)
Режимът за отстраняване на грешки автоматично презарежда приложението, когато правите промени в кода. Не използвайте режим за отстраняване на грешки в производствена среда, той може да разкрие чувствителна информация и да направи приложението ви уязвимо за атаки. Стартирайте приложението си. Той ще работи като локален сървър на порт 5000.
Свързване на логиката с вашия бот
След като създадете логиката, сега трябва да се свържете с бота във вашето работно пространство. Това ще му позволи да използва тази логика за извършване на операции във вашето работно пространство. Започнете с изтегляне и стартиране Нгрок. Ngrok ще ви помогне да изложите вашия локален уеб сървър на интернет.
След като го стартирате, използвайте следната команда, за да съпоставите адреса на вашия локален сървър с този на Ngrok.
ngrok http 500
Копирайте адреса на Ngrok, който съответства на вашия локален хост.
Отидете до уебсайта на Slack API. Под Абонаменти за събития функция, активиране на събития. Под URL адрес на заявка въведете адреса на Ngrok, последван от /slack/events. Това ще посочи вашата крайна точка.
След това се абонирайте за събитието member_joined_channel. Това ще уведомява вашия бот всеки път, когато потребител се присъедини към канал. Кликнете върху Запазите промените. Slack автоматично ще добави обхватите, от които се нуждаете, за да се абонирате за това събитие. Всеки път, когато промените обхват, ще трябва да преинсталирате приложението си в работното пространство.
Кликнете върху преинсталиране на вашето приложение.
Тестване на вашия бот
Отидете до работното си пространство. Отидете до канала, който искате да използвате бота. Изпратете директно съобщение до бота. Например @Welcoming Bot. Ще се появи подкана за добавяне на бота към канала. Щракнете върху добавяне.
Сега всеки път, когато нов потребител се присъедини към канала, ботът ще изпрати съобщение за добре дошли.
Изображението по-горе показва как ботът приветства нов потребител в канала.
Извлечете максимума от работното си пространство в Slack
Slack ботовете не са единственият начин за разширяване на функционалността на платформата за съобщения Slack. Другият метод е да интегрирате инструменти на трети страни със Slack. Те предоставят допълнителна функционалност в платформата.
Запознайте се с тези интеграции, тъй като те ще увеличат вашата продуктивност в Slack.