Рубрики
Без рубрики

Как построить приложение Slack, чтобы сохранить тему канала Slack, заблокированную Airtable и Standard Library

Сегодня мы увидим, как вы сможете вернуть контроль над темами канала Slack, развернув бота Slack в стандартной библиотеке, которая использует Airtable, чтобы заблокировать тему канала до хранимой стоимости. Так что давайте погрузимся!. Tagged Slack, Node, производительность, JavaScript.

Вы когда -нибудь хотели заблокировать свои темы канала Slack? Наш друг, Бен Браплл, недавно задал этот вопрос в Твиттере:

Действительно хороший вопрос.

Если вы читаете это, то шансы на то, что вы используете Слаб для внутреннего общения, когда на работе. Вполне вероятно, что вы также знаете, что темы канала Slack могут установить тон для того, как пользователи взаимодействуют друг с другом в данном канале. Они являются постоянным напоминанием о том, что канал предназначен для серьезного бизнеса, зарезервирован для лошадей или падает где -то посередине. И хотя они, несомненно, важны, они также чрезвычайно хрупкие, подвергаются воле масс, которые составляют канал. В любой момент ваша тема может быть заменена, Willy-Nilly, любым участником канала, и вы бессильны, чтобы предотвратить ее. То есть до сих пор.

Всегда есть один.

Сегодня мы увидим, как вы можете вернуть контроль над темами канала Slack, развернув слабый бот на Стандартная библиотека который использует Airtable Чтобы заблокировать тему канала до хранимой стоимости. Итак, давайте погрузимся!

Для тех, кто просто хочет развернуть готовый проект, перейдите к этому GitHub Repo . Вам по -прежнему нужно будет настроить Airtable и иметь стандартную библиотечную учетную запись, но с вашей стороны не потребуется никакая другая настройка.

Что вам нужно заранее

1x Airtable Account – https://www.airtable.com 1x Slack Account – https://www.slack.com 1x стандартная библиотечная учетная запись – https://www.stdlib.com

Шаг 1: Настройка Airtable

Первое первое. Мы хотим настроить какой -то способ сохранить желаемые темы канала. Airtable, хотя она выглядит как электронная таблица, очень похожа на базу данных и прост в использовании и прост в настройке. Получите бесплатную учетную запись по Нажав здесь , а затем нажмите Здесь, чтобы добавить наш шаблон в ваше рабочее пространство. Вы должны получить что -то подобное, за исключением того, что у вас будет только 1 ряд:

Выделено: имя таблицы

Не стесняйтесь добавлять столько каналов, сколько хотите здесь! Для этого урока я бы порекомендовал добавить канал #Random и тему по вашему выбору на базу (это будет использоваться в нашем тестовом событии позже). Просто обратите внимание, что вы должен Включите # Перед всеми именами канала в первых столбцах, и это Темы ограничены 250 символами. Теперь вы готовы перейти к настройке рабочего процесса.

Отправляйтесь в Создайте стандартную библиотеку И начните настраивать свой проект. Выберите следующие варианты для вашего проекта:

Мероприятие:

Slack → Сообщения

Действия:

Airtable → Выберите ряды, запросив базу

Slack → Установите тему канала

Это должно выглядеть так:

Вы готовы к Создайте рабочий процесс!

Следующий экран, который вы видите, попросит вас связать ваши Airtable и Slack Resources. Мы уже установили учетную запись Airtable на предыдущем шаге, так что давайте начнем там. Нажмите на синий Ссылка ресурса Кнопка рядом с Airtable. На следующей странице диалога нажмите Ссылка новый ресурс Чтобы выбрать вашу новую таблицу. Если вы использовали Airtable со стандартной библиотекой раньше, нажмите Финиш Чтобы связать вашу предыдущую учетную запись. Если вы новичок в Airtable, вы увидите другое диалоговое окно с просьбой о Введите имя для вашей учетной записи (Я рекомендую вашу электронную почту вашей учетной записи) и Получить ключ API со страницы вашей учетной записи (найдено здесь). Экран должен выглядеть так:

Нажмите на финал, чтобы продолжить!

Нажмите на Финиш и на следующем экране найти и выберите базу, которую мы создали ранее, Темы канала и нажмите Финиш Здесь тоже. Вот и все для Airtable. Давайте перейдем к Slack!

Чтобы начать, нажмите на Ссылка ресурса Кнопка рядом с Slack. Если у вас уже есть бот, настроенный в желаемом рабочем пространстве, найдите его и выберите его на этом первом диалоговом экране. Вот и все! Вы готовы перейти к следующему шагу. Если у вас нет бота, который в настоящее время настроен в желаемом рабочем пространстве, продолжитесь в этом разделе. Как только вы нажмете Ссылка нового ресурса, Вы прибудете в наш новый процесс связывания Slack Workspace. Ваш экран должен выглядеть так:

Выберите «Установить стандартное библиотечное приложение», чтобы продолжить.

Выберите стандартную опцию Bibrary Bot, и всплывающее окно попросит вас установить стандартную библиотеку в свое рабочее пространство Slack.

Slack Workspace Oauth Page.

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

Наша тема, бот.

Нажмите на Финиш И теперь вы должны увидеть зеленый круг с сообщением Идентичность сгенерирована Под вашими двумя ресурсами. Если вы это сделаете, нажмите на синий Следующий В нижней части диалогового окна и перейдите к шагу 4.

Для этого шага мы будем использовать построение на интуитивном интерфейсе стандартной библиотеки для генерации кода node.js, который будет стимулировать функциональность нашего бота. Первый заказ бизнеса – это настроение нашего Airtable запроса. Заполните следующие детали:

Таблица → Темы

Где → канал → равен → #$ {result.step1.channel.name}

Теперь мы можем дать этому тестовый запуск. Нажмите на пауза Кнопка рядом с Установите тему канала ряд в нашем рабочем процессе, как показано ниже, и нажмите на зеленый Запустить с тестовым событием кнопка:

Найти наш канал в Airtable.

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

Ваша тема может варьироваться.

Если вы видите это, то мы готовы перейти к следующему шагу! Неужели строка, которую мы остановили ранее, и нажмите на шесть точек рядом с набором A Тема канала Шаг в рабочем процессе. Заполните два поля следующим образом:

канал → $ {result.step3.selectqueryresult.rows [0] .fields. Канал}

Тема → $ {result.step 3. Выберите Query Result.rows [0] .fields. Тема}

Это должно выглядеть примерно так:

Мы готовы изменить некоторые темы!

Нажмите на Запустить с тестовым событием пуговица и посмотрите, как ваш бот уходит! Проверьте канал #Random вашего рабочего пространства Slack, и вы должны увидеть сообщение, сообщающее вам о том, что тема канала была изменена на значение, которое вы вводите в Airtable. Довольно аккуратно!

В настоящее время наш бот попытается изменить тему в любом канале, в котором он получает любое сообщение. Но мы действительно хотим выполнить это действие только тогда, когда пользователь меняет тему канала в канале, который мы контролируем, не всякий раз, когда Дженис в бухгалтерском учете просит всех представить свои отчеты о расходах. Для этого нажмите на Режим разработчика Кнопка под вашим рабочим процессом, чтобы получить за кулисами, посмотрите на код, который мы генерировали. Режим разработчика: включен.

Здесь вы захотите заменить весь код следующим фрагментом, чтобы убедиться, что все работает гладко.

Это похоже на много, так что давайте поближе посмотрим на то, что мы делаем.

-Му настраиваем некоторую условную логику, чтобы сообщить нашему проекту, что если полученное сообщение не является предупреждением о том, что тема канала была изменена, а затем верните сообщение в наши журналы («статус без изменений».)

-Если сообщение является предупреждением о том, что статус был изменен, затем мы преобразуем наш запрос, как написано, и выполняем еще одну условную проверку перед обновлением темы канала

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

Если вы Запустить с тестовым событием Теперь проект должен просто вернуть сообщение, сообщающее вам о том, что статус не изменился.

Вы должны увидеть сообщение «неизменное статус».

Вы также заметите, что в своем канале #Random Slack вы не получили сообщения о изменении темы. Это означает, что наши чеки работают так, как предполагалось. Нажмите на синий Следующий кнопку, дайте своему приложению имя и нажмите Хорошо, отправьте это! Это все, что вам нужно сделать! Не стесняйтесь проверить это. Счастливого патрулирования, тема, бот!

* Кевин Бриммерман – инженер -программист в Standard Library. Вне работы он является заядлым бегуном и преданным фанатом Чикаго. Иди, детенышей! *

Оригинал: “https://dev.to/stdlibhq/how-to-build-a-slack-app-to-keep-a-slack-channel-topic-locked-with-airtable-and-standard-library-59pf”