Как создать Slack-приложение, которое изменит показатели Salesforce в Slack
23 марта 2022 г.Часть 1. Начало работы со стартовым комплектом
Компании используют Slack для общения и Salesforce для управления данными. Как и следовало ожидать, разговоры в Slack не всегда коррелируют с изменениями в записях Salesforce. Возможность обмена данными между этими двумя службами может повысить производительность команды за счет устранения необходимости переключения между ними.
В декабре 2021 года Salesforce выпустила [серию видеороликов, объясняющих, как создавать приложения Slack] (https://www.youtube.com/playlist?list=PLgIMQe2PKPSKcl26YQoKCR7F3CwIc8kxi) с использованием своих API. Создание на основе любой платформы может быть пугающим: вам нужно узнать, как работает аутентификация, методы, которые вы можете вызывать, события, которые вы можете прослушивать, и так далее. У Slack есть [отличная документация] (https://api.slack.com/docs) и SDK, [Bolt] (https://api.slack.com/tools/bolt), который сокращает количество шаблонной логики, быстрее переходить от идеи к реальному приложению.
![Фото Остина Дистела] (https://cdn.hackernoon.com/images/cl-0-q-6-ozba-01-ga-0-as-6-bfcr-01-ez.jpg)
Ребята из Salesforce сделали еще лучше. Принимая во внимание принципы и инструменты разработки Bolt, они разработали [Slack Starter Kit] (https://github.com/developerforce/salesforce-slack-starter-kit). Это самоуверенная каркасная структура, предназначенная для упрощения создания приложений Slack, которые интегрируются с данными Salesforce.
В этой серии статей мы покажем вам, как использовать Slack Starter Kit и Bolt для создания приложения, позволяющего пользователям просматривать и изменять записи Salesforce — полностью в Slack.
К концу этой серии у нас будет полнофункциональное приложение Slack, взаимодействующее с платформой Salesforce. В этом первом посте мы рассмотрим SDK и настроим вашу среду разработки для будущей работы!
Предпосылки
Прежде чем мы начнем, убедитесь, что на вашем компьютере установлено следующее программное обеспечение:
- [CLI sfdx] (https://developer.salesforce.com/tools/sfdxcli) — это инструмент, разработанный Salesforce для упрощения взаимодействия с платформой.
- Последняя версия Node (>= 14.0)
- [CLI Heroku] (https://devcenter.heroku.com/articles/heroku-cli), а также существующая учетная запись Heroku.
- Рабочее пространство Slack, где вы можете устанавливать приложения
- Существующий Salesforce [Dev Hub] (https://developer.salesforce.com/docs/atlas.en-us.packagingGuide.meta/packagingGuide/dev_hub_intro.htm)
Сначала мы создадим приложение Slack, которое предоставит нам токены и другую специфичную для Slack информацию, которая нам понадобится перед созданием нашего приложения. Для этого:
- Перейдите к https://api.slack.com/apps и нажмите Создать новое приложение.
- В появившемся окне выберите С нуля.
- Установите для приложения имя «SFDCContactEditor» и выберите рабочую область, в которой можно установить приложение.
Вот и все! Если вы прокрутите вниз, вы увидите свои учетные данные приложения. Мы обратимся к ним в следующем разделе.
На левой панели навигации нажмите «Манифест приложения». Ваш манифест приложения определяет некоторые метаданные о вашем приложении, такие как разрешения, которые оно запрашивает, и события, которые оно обрабатывает. Вставьте в это поле следующий YAML, перезаписав то, что было по умолчанию:
_метаданные:
основная_версия: 1
минорная_версия: 1
display_information:
имя: SFDCContactEditor
Функции:
app_home:
home_tab_enabled: правда
messages_tab_enabled: ложь
messages_tab_read_only_enabled: правда
бот_пользователь:
display_name: SFDCContactEditor
всегда_онлайн: правда
ярлыки:
- имя: Вуами
тип: глобальный
callback_id: who_am_i
описание: показывает сведения об организации Salesforce.
oauth_config:
области:
бот:
- чат: пишите
- чат: write.public
- команды
- пользователи: читать
настройки:
события_подписки:
request_url: https://heroku-app.herokuapp.com/slack/events
бот_события:
- app_home_opened
интерактивность:
is_enabled: правда
request_url: https://heroku-app.herokuapp.com/slack/events
org_deploy_enabled: ложь
socket_mode_enabled: ложь
token_rotation_enabled: ложь
Нажмите Сохранить изменения. Если вы получили сообщение об ошибке о неподтвержденном URL-адресе, не беспокойтесь — мы скоро это исправим!
Затем клонируйте [Slack Starter Kit] (https://github.com/developerforce/salesforce-slack-starter-kit), а затем перейдите в каталог scripts
:
клон git https://github.com/developerforce/salesforce-slack-starter-kit
компакт-диск Salesforce-slack-стартовый комплект/скрипты
Установите там зависимости с помощью npm install
; затем откройте папку и установите эти зависимости:
установка нпм
компакт диск ..
установка нпм
Знакомство со стартовым комплектом Salesforce
При наличии стартового комплекта Salesforce и установленных зависимостей пришло время взглянуть на то, что он может сделать.
Основная цель Starter Kit — настроить среду для создания, тестирования и развертывания приложения Slack, которое интегрируется с Salesforce. Он делает это:
- Создание [рабочей организации Salesforce] (https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_scratch_orgs_create.htm)
- Настройка и развертывание примера приложения на Heroku
- Использование Bolt для абстрагирования деталей с аутентификацией
- Настройка структуры проекта, которая предпочитает соглашение, а не конфигурацию
Давайте посмотрим на это в действии. Во-первых, убедитесь, что вы прошли аутентификацию в Salesforce Dev Hub, запустив sfdx auth:web:login
. Затем запустите node scripts/deploy.js
, и приглашение CLI вступит во владение.
Вас попросят предоставить некоторую информацию:
- В качестве имени приложения Heroku мы будем использовать «sfdc-contact-editor». Обязательно выберите уникальное имя для своего приложения Heroku, поскольку имена приложений должны быть уникальными для всех приложений Heroku.
- Для токена Slack Bot перейдите на страницу OAuth и разрешения в обзоре приложения Slack и скопируйте и вставьте токен OAuth пользователя бота в терминал.
- Чтобы узнать секрет подписи Slack, вернитесь в раздел «Учетные данные приложения» на странице «Основная информация» на сайте Slack. Скопируйте и вставьте предоставленный секрет подписи в терминал.
- Укажите имя вашего существующего псевдонима Dev Hub.
- Вы можете назвать свою скретч-организацию как угодно — по умолчанию подойдет
scratchorg
!
А теперь возьмите напиток и откиньтесь на спинку кресла, пока Starter Kit создает для вас несколько учетных записей. Он создает новую временную организацию и новое приложение Heroku, а также определяет некоторые важные переменные среды для использования развернутым приложением. Примечание: если вы получаете отказ из-за отсутствия OrgCreateCommand
, убедитесь, что у вас включен Dev Hub. Если вы получаете сообщение об отсутствии открытого ключа или разрешений при отправке в Heroku, запустите heroku keys:add
.
Через некоторое время вы получите следующее сообщение:
Завершено развертывание приложения Heroku sfdc-contact-editor
Чтобы убедиться, что приложение было настроено и развернуто, вы можете выполнить два отдельных шага. Сначала выполните следующую команду в окне терминала:
sfdx сила: организация: открыть
Перейдите к [Управление связанными приложениями] (https://help.salesforce.com/s/articleView?id=sf.connected_app_overview.htm&type=5), и вы должны увидеть приложение под названием «Подключенное приложение для Slack». Это политика платформы Salesforce, созданная Starter Kit для вашего приложения Slack.
Затем перейдите на https://dashboard.heroku.com/, и вы должны увидеть свое новое приложение в списке.
Теперь, когда у нас есть рабочая версия приложения, нам нужно внести еще одно изменение в нашу конфигурацию Slack, чтобы объединить их. Откройте свой [Манифест приложения] (https://api.slack.com/reference/manifests) и найдите две строки, которые идентифицируют вашу конечную точку Heroku:
request_url: https://heroku-app.herokuapp.com/slack/events
Замените заполнитель heroku-app
на фактическое имя вашего приложения Heroku. Нажмите Сохранить изменения. Slack сообщит вам, что URL-адрес вашего запроса не проверен; нажмите Подтвердить, чтобы это произошло!
Наблюдаем за работой
Давайте попробуем взаимодействовать с нашим приложением, чтобы убедиться, что все подключено правильно. Помните: у нас есть производственное приложение, работающее на Heroku, которое перехватывает действия пользователя в Slack и связывается с Salesforce. Мы еще не добавили никаких собственных функций; все было предварительно сконфигурировано с помощью Starter Kit.
Во-первых, добавьте приложение в рабочее пространство Slack. Вам будет предложено пройти аутентификацию в Salesforce; нажмите на кнопку, чтобы сделать это. Затем зайдите в любую комнату Slack и запустите whoami [ярлык, предоставленный приложением] (https://slack.com/help/articles/360004063011-Work-with-apps-in-Slack-using-shortcuts). :
Вуаля!
Далее давайте кратко рассмотрим, что находится внутри Starter Kit. Откройте проект в вашей среде IDE и перейдите в папку salesforcelib
. Здесь есть файл с именем «connect.js». Здесь происходит вся проверка подлинности Salesforce. Нам не нужно ничего делать с этим файлом, но полезно знать, сколько абстрагируется для нас.
Затем откройте папку «listeners». Эта папка содержит всю логику приложения для прослушивания и реагирования на события из Slack. Откройте ярлыки, затем whoami.js. Этот файл содержит все функциональные возможности ярлыка, который мы только что создали. Следует отметить две важные вещи:
- Первым методом, вызываемым в функции, является
ack
. Slack требует, чтобы приложение подтверждало событие в течение трех секунд после его возникновения, а ack отвечает за отправку этого сообщения в Slack.
- В следующей строке —
const conn = context.sfconnection
— мы получаем информацию о соединении из Salesforce.
Наконец, давайте взглянем на папку пользовательского интерфейса. Как вы могли догадаться, эта папка содержит все определения пользовательского интерфейса для нашего приложения Slack. (Мы обязательно более подробно рассмотрим, как создать пользовательский интерфейс в нашей следующей части.) Внутри здесь откройте папку модалов, затем откройте whoami-response.js
. Starter Kit позаботится о фактических определениях для разработки и подсказки модального пользовательского интерфейса, который мы видели. Единственное, что мы можем настроить, это текст поля. Давайте смелее и добавим восклицательный знак в конце этого предложения:
Успешное подключение к экземпляру Salesforce ${instanceurl}. Аутентификация пользователя ${username}!
Давайте развернем это приложение в реальном времени! Если вы не знаете, как это сделать, вам следует ознакомиться с [этой статьей о развертывании в Heroku] (https://devcenter.heroku.com/categories/deployment). Проще говоря, все, что нам нужно сделать, это отправить наше зафиксированное изменение на наш пульт Heroku:
$ salesforce-slack-starter-kit (основной): git add apps/slack-salesforce-starter-app/user-interface/modals/whoami-response.js
$ salesforce-slack-starter-kit (основной): git commit -m «Добавить восклицательный знак»
Salesforce-app@1.0.0 предварительная фиксация
ворсовая стадия
✔ Подготовка...
✔ Запуск задач...
✔ Применение модификаций...
✔ Уборка...
[main 44aac80] Добавить восклицательный знак
1 файл изменен, 1 вставка(+), 1 удаление(-)
$ git push главная героиня
Когда Heroku будет готов, вы можете вернуться в Slack, использовать тот же ярлык whoami и увидеть свои новые изменения вживую.
Узнать больше
Являетесь ли вы опытным разработчиком или только начинаете, Slack Starter Kit может сэкономить вам много времени. За короткое время совместной работы мы смогли:
- Создайте новую среду Salesforce
- Создайте новое приложение Slack
- Разверните приложение Slack на Heroku
- Подключите Slack, Heroku и Salesforce
- Выполните ярлык Slack и посмотрите результаты
Starter Kit, по сути, решил множество проблем, связанных с аутентификацией и токенами API, автоматизировав большую часть этого для нас. Каждое приложение потребует настройки этих аспектов, и, поскольку Starter Kit упростил эти повторяющиеся процессы, теперь мы можем сосредоточиться на самом важном: разработке невероятного приложения Slack.
Создав этот фундамент, мы готовы продолжить работу над ним в нашей следующей части! Мы подробнее рассмотрим архитектуру Starter Kit и добавим новую собственную команду.
Также опубликовано здесь.
Оригинал