Корпоративный мессенджер slack: обзор «убийцы skype и внутрикорпоративной электронной почты»
Содержание:
- Other Services & Tools
- Slack 3.0.0
- Best Practices
- Не ограничивайтесь Slack
- Конкуренция с Microsoft
- Возможности Slack
- Установка Slack на различные устройства
- Напоминания и уведомления в Slack
- Transitioning from IRC & XMPP gateways
- Add the tools you use every day
- Как пользоваться Slack
- Getting started with Incoming Webhooks
- Ping and Pong
- What can the Slack platform do?
- Adding secondary attachments
- Understanding modal flows
- Cемь лет истории
- Welcome to Slack
- Authentication
- Your next steps
Other Services & Tools
This is a list of bots, plugins, and other tools that are available to work in conjunction with third-party services and tools.
Estimote Beacons
These open source repositories can be used to integrate with Estimote beacons.
- PreSenseBot — Example bot user that interacts with the beacon-aware PreSense iOS and Android apps.
- SlackStatus — An example iOS app for interacting with the Web API.
- slashnote — This Slash command example is used by note.cntxt, winner of the Slack-focused Estimote RealityHack competition.
WordPress
- Wordpress Plugin: Caldera Forms Slack Integration — Get notifications in Slack whenever a Caldera Form is submitted
- Wordpress Plugin: Slack — Send notifications to Slack when events occur in WordPress
- Wordpress Plugin: bbPress Slack — Send notifications of new bbPress topics and replies to Slack
Other tools
- Atlassian Stash — Send notifications to a Slack channel when a repo push occurs
- Looker — The Lookerbot for Slack makes it easy to bring data from Looker into every Slack conversation
- slack (Drupal) — Send messages from a Drupal website to Slack
- slack-chat (Drupal) — Allow your visitors to send instant messages from your website to your Slack account
- Slack Message Builder — A tool for previewing how JSON payloads translate to Slack messages
- stdlib — A suite of tools helping you rapidly build serverless Slack bots
- steno — A Slack app testing companion: record and replay your incoming & outgoing HTTP requests
- Unofficial TeamCity Slack plugin — Send notifications from TeamCity to Slack
Slack 3.0.0
December 8, 2017
What’s New
- When you’re in a lot of workspaces, the app now uses much less memory, and starting up is faster, to boot.
- And flipping between those workspaces is now faster. Not super-sonic, but certainly somewhere between a jiffy and lickety-split.
- We shunted the sign-in page out of the app — it’s now rerouted to a new window, for reasons of reliability.
- A new-fangled lock badge subtly lets you know which workspaces you’re currently signed out of. Or of which you’re currently signed out. Either way.
- Our start up screen, spruced-up and slimmed-down, is worth a gander — as is the helpful way that dates now stick to the top of a channel while scrolling through messages. Though if you don’t notice them, but quietly feel a little bit happier for reasons you can’t put your finger on, that’s cool too.
Best Practices
- If you’re not ready to respond to an incoming command but still want to acknowledge the user’s action by having their slash command displayed within the channel, respond to your URL’s invocation with a simplified JSON response containing only the field set to : .
- If your command doesn’t need to post anything back (either privately or publicly), respond with an empty HTTP 200 response. You should use this only if the nature of your command makes it obvious that no response is necessary or desired. Even a simple «Got it!» ephemeral response is better than nothing.
- Help your users understand how to use your command. Provide a help action that explains your command’s usage. If your slash command was , you should provide a response to that lists the other actions available.
- Keep track of the validation token Slack gives you when the command is created. Always validate the field in an incoming slash command request has been issued to you by Slack.
- Turn on by flipping the toggle in your slash command’s configuration dialog. Always work with user IDs and channel IDs.
- to avoid conflicts with other apps.
- Using multiple commands with multiple apps or development environments? Look for to differentiate which app is intended for the slash command invocation.
Не ограничивайтесь Slack
Конечно, можно пытаться передать в тексте все оттенки смысла, но иногда бывает проще позвонить. Короткий телефонный разговор может оказаться гораздо эффективнее, чем 15-минутная переписка в мессенджере.
Кроме того, некоторые разговоры вообще не стоит вести на общедоступных платформах. «Будьте внимательны при отправке сообщений, чтобы не попасть в неловкую ситуацию, — напоминает Суонн. — Часто бывает, что пользователь хочет отправить личное сообщение собеседнику, но случайно попадает в общий чат». Платформы регулярно взламываются, поэтому сообщения в Slack и других мессенджерах стоит воспринимать как тексты, размещенные в открытом доступе
Осторожность не повредит
Конкуренция с Microsoft
Одно из последствий сделки между Slack и Salesforce, считают аналитики CNBC – это усиление позиций мессенджера в вопросе конкуренции с Microsoft Teams. Софтверный гигант запустил собственный корпоративный мессенджер в ноябре 2016 г., спустя три года с момента релиза Slack.
В июле 2018 г., как сообщал CNews, Microsoft решила укрепить позиции Teams на рынке корпоративных мессенджеров – она запустила его полностью бесплатную версию, доступную для всех. До этого Teams могли пользоваться только подписчики сервиса Office 365, в настоящее время известного как Microsoft 365. Открытие Teams для широкого круга пользователей на бесплатной основе профильные СМИ расценивают как очередной шаг в конкуренции со Slack, который предлагает бесплатную версию с момента своего запуска.
В последующие годы давление Teams на Slack усиливалось, и в июле 2020 г. его создатели не выдержали и обратились за помощью к властям. Они подали на Microsoft жалобу в Еврокомиссию, в которой указали на неконкурентное поведение корпорации.
Создатели Slack обвинили ее в использовании своего доминирующего положения для распространения Teams, в том числе и через Office, и предположили, что Microsoft хочет уничтожить Slack. Microsoft в ответ заявили, что им удалось выбиться в лидеры за счет большего числа сервисов, интегрированных в Teams.
К концу марта 2020 г. согласно статистике самих разработчиков, число ежедневно активных пользователей Slack достигло 12,5 млн в глобальных масштабах, хотя еще в начале марта 2020 г. их было около 10 млн. Для сравнения, в Teams их на тот момент было порядка 75 млн.
- Короткая ссылка
- Распечатать
Возможности Slack
Все общение в мессенджере разделено на каналы, каждый из которых предназначен для разных тем. При работе это позволяет скооперировать общение. Сотрудники, у которых нет доступа к отдельным каналам, не будет видеть сообщения в них. Так людей не отвлекают лишняя информация. При подключении к чату, человек получает доступ ко всему, что в нем было опубликовано, в том числе до входа нового сотрудника.
Программа распространяется в нескольких версиях: бесплатная, платная и с расширенными возможностями. В первой существует ограничение на загрузку файлов: в free-версии для этого есть всего 5 гигабайтов облачного хранилища. Чтобы передавать большее количество информации, придется приобретать платную сборку, которая стоит 6$ в месяц. Также в ней разблокируется полный доступ для поиска по истории. В Trial-версии эта функция работает только по 10 тысячам последних сообщений.
Slack максимально адаптирован под удобства пользователей. В него можно интегрировать сторонние приложения, которые упростят работу. Например, пользователи могут подключить Dropbox. Даже обмен ссылками реализован максимально удобно: у них видно превью, чтобы пользователь сразу мог оценить, нужна ли ему полученная информация. Чтобы отправить картинку, достаточно скопировать в интернете ее url-адрес.
В приложении можно вести переписку со всеми, кто находится в чате, или адресовать что-то конкретному человеку. Это отображается и в уведомлениях. Во всплывающем баннере видно, в каких каналах есть непрочитанные сообщения и отдельно указаны те, в которых был упомянут пользователь. Через символ @ можно приглашать других людей на канал. Как только сотрудник получает именное сообщение, ему становится доступна история чата. Также пользователи могут переписываться на индивидуальных каналах.
Установка Slack на различные устройства
После скачивания установщика для ОС Windows, достаточно запустить EXE-файл и проследовать подсказкам мастера настройки. Пользователи ОС Linux могут установить DEB-пакет несколькими путями:
- при помощи встроенного центра приложений (двойной клик на скачанном файле);
- используя менеджер пакетов gDebi (актуально для пользователей Linux Mint);
- используя терминал — введите здесь строку, которая будет содержать sudo dpkg-i и путь к файлу, например, ‘/home/ubuntu/Загрузки/slack-desktop.deb’.
На этом, инструкция Slack по установке завершается и можно начинать полноценно пользоваться программой.
Напоминания и уведомления в Slack
Добавьте в сообщение @channel, чтобы отправить уведомление всем в текущем чате, @group — для всех в группе, @everyone — каждому члену вашей команды и @here — всем, кто сейчас онлайн.
Пример оповещения всех, кто находится онлайн
Опция 20: настроить оповещения по ключевым словам
Зайдите в настройки, раздел Notifications и выберите My Keywords. Добавьте туда ключевые слова, и Slack будет присылать вам уведомления обо всех новых чатах, сообщениях и новостях с этими словами.
Опция 21: отключить уведомления на определенное время
Введите /dnd и время в поле ввода, например: /dnd until 3:00, /dnd for 20 minutes или /dnd until tomorrow morning (до завтрашнего утра). Чтобы снова включить их, напишите /active.
Опция 22: отключить уведомления в определенные дни
Нажмите на иконку «колокольчик» в Sidebar (боковой панели) и выберите Do Not Disturb Schedule, чтобы активировать функцию. Так можно отключить оповещения в выходные или на время отпуска.
Опция 23: настроить регулярные напоминания
Введите /remind @имя или #название канала Текст напоминания.
Например: /remind @vasily.ivanov Купить в понедельник новый степлер, /remind #initech Каждую пятницу отправлять отчеты или /remind #remotestaff Каждый месяц отправлять отчеты о расходах.
Пример использования команды remind
Transitioning from IRC & XMPP gateways
How can I test basic Slack messaging behavior from the command line?
There are some community-authored open source tools that provide an IRC-like experience on top of Slack APIs. Although they are not directly supported or built by Slack, you can leverage these resources to build your own tools.
- slack-weechat is a WeeChat plugin written in Python and uses the RTM API.
- slack-term is written in Go and uses the RTM API.
How do I build a bot using Slack APIs?
Bots and integrations with Slack can be built a few different ways.
One common pattern is:
- Create a Slack app to contain all the pieces of your bot integration at api.slack.com/apps.
- Using app management, add the bot user and event subscriptions features to your app and configure them.
- Under Event Subscriptions, subscribe to «Bot Events» like , , and to receive events whenever users send your bot messages in channels and direct messages. Subscribe to other events your bot may be interested in.
- Install your Slack app to your workspace through app management to activate subscriptions and receive your bot user token.
- Use the bot user token to send messages to to post new messages or reply to users.
The RTM API may be used instead of the Events API to receive messages (and many more events) over a websocket. Simple messages can also be sent via the RTM API without needing to use .
To build a bot that will stand the test of time, consider the upcoming workspace token model.
See for inspiration.
How do I build an IRC or XMPP gateway for myself using the API?
Building your own gateway for personal use is an undertaking.
The part of the gateway that reads from Slack should either connect to the RTM API over a websocket or listen for events using the Events API. Use the Web API to post messages and perform channel operations. The XMPP or IRC part of the gateway is its own adventure to explore.
Choose the token type that works best for you. Bot user tokens work well if your user is a bot but poorly if your user is you. Legacy testing tokens may work in a pinch, but properly scoped user tokens work best, as they model your own relationship to Slack. The scope is useful but overly broad and not suitable for an app distributed on the App Directory.
Using your user token to post as yourself when posting messages with is best.
Apps operating as a gateway should never distribute their API keys, secrets, or tokens.
Consult for some inspiration.
Add the tools you use every day
Why it matters
With Slack apps and integrations, you can turn Slack into a hub for all your work tools, saving you time from switching between multiple tabs and apps each day.
How it works
Every organization is different, of course, but at Slack we’ve found that a few types of apps add huge value for every person:
- Add your file storage service (Dropbox, Box, Google Drive) to share files without leaving Slack
- Sync email and calendar services like G Suite and Office 365
Ready to add apps and integrations?
Here’s our list of essential apps for Slack (hint: the Giphy app tends to be a real crowd-pleaser for teams).
OK, we’ll let you get back to work. (On Slack, that is.)
Как пользоваться Slack
Теперь, когда вы знаете о достоинствах и недостатках Slack, настало время обсудить, как им пользоваться. Вы помните, что интерфейс приложения англоязычный, но тем не менее в нём несложно разобраться.
Создание учетной записи
- Чтобы создать аккаунт в Slack, откройте приложение и нажмите кнопку внизу с надписью «Create a new workspace» — если вы сами ответственны за организацию рабочего чата и вам нужно создать его, либо синюю ссылку «Find your Slack workspace», если вы хотите присоединиться к уже существующему сообществу.
- Впишите e-mail в нужное поле.
- Проверьте почту и скопируйте код из письма.
- Вернитесь к окну Slack и нажмите Ctrl+V.
- Укажите своё имя и никнейм.
- Придумайте надёжный пароль.
- Если вы администратор, то также заполните информацию о вашей компании, укажите количество людей, которых вы добавите, вашу должность и роль в чате.
- Разошлите ссылку для приглашения своим коллегам.
Внешний вид мессенджера
После входа в аккаунт на цветной плашке слева вы увидите рубрикатор групп и чатов, уведомления, а справа – окно с лентой, строкой поиска, инструментом отметки важных сообщений и настройками. Если вы работаете с Linux, лучше сразу отключить аппаратное ускорение, чтобы не испытывать проблем с отображением эмодзи и анимированного контента. Для этого нажмите стрелочку, располагающуюся рядом с названием сообщества, выберите Prefertences — Linux App — Disable hardware acceleration и поставьте напротив последнего галочку.
Настраиваем свой профиль
Переходим к настройке аккаунта:
- Снова нажмите на имя пользователя, выберите раздел под названием «Profile&account» — «Edit profile».
- Добавьте свою фотографию, некоторые сведения о себе.
- Справа есть также значок зубчатого колесика, кликнув по которому, вы сможете выбрать способ входа в аккаунт, сменить пароль, выставить плашку со своим часовым поясом, настроить взаимосвязь с другими мессенджерами, если вам удобнее писать в Slack через них, и т. п.
Настройка каналов
Структура мессенджера складывается из обширных веток общения – каналов и небольших локальных групп внутри них. Если вы регистрируетесь в «Slack» по приглашению, то вам ничего не нужно настраивать – вы попадаете в готовую среду. А если вы организуете общение коллег, то придётся кое-что сделать:
- Новый канал создаётся кликом по символу «+» рядом со словом «Channels» в рубрикаторе слева.
- Назовите канал, напишите аннотацию, какова его тематика, пригласите коллег.
- Чтобы допускать к информации только определённых лиц, можно указать их в настройках приватности.
Готовый канал можно изменить, открыв его и нажав на иконку в виде зубчатого колесика справа вверху.
Отправка сообщений Slack
Чтобы отправить сообщение, в рубрикаторе слева выберите участника беседы (их список находится под заголовком Direct Messages) или канал (Channels) – справа появится форма для набора текста. В первом случае сообщение смогут прочитать все пользователи указанного канала, а во втором – только один человек. В публичных каналах технически возможно удалять уже отправленные сообщения (через соответствующую кнопку), но некоторые сообщества запрещают это, потому что теряется смысл обсуждения. Чтобы упомянуть пользователя в общей беседе, достаточно перед ником поставить символ «@» — ему придёт уведомление.
Приглашение друзей
Для приглашения на свой канал можно использовать ссылку, которую вы получили при регистрации профиля, либо найти слева рубрику Invite People. Человеку также придётся создать аккаунт в этой сети, чтобы иметь доступ к публикациям.
Встроенные приложения
Как уже упоминалось, Slack интегрируется с другими ресурсами: почтовыми, редакторами документов, мессенджерами, хранилищами и т. п. Если вам нужна такая функция, откройте раздел Apps и выберите необходимое расширение – под каждым из них есть кнопка для установки.
Getting started with Incoming Webhooks
We’re going to walk through a really quick 4-step process (if you’ve already done some of these things it’ll be even easier) that will have you posting messages using Incoming Webhooks in a few minutes:
1. Create a Slack app (if you don’t have one already)
You won’t get very far without doing this step, but luckily it’s very simple, we even have a nice green button for you to click:
Pick a name, choose a workspace to associate your app with (bearing in mind that you’ll probably be posting lots of test messages, so you might want to create a channel for sandbox use), and then click Create App. If you’ve already created one, you can use it too, also have a cookie .
2. Enable Incoming Webhooks
After creating, you’ll be redirected to the settings page for your new app (if you are using an existing app, just load its settings via your app’s management dashboard).
From here select the Incoming Webhooks feature, and click the Activate Incoming Webhooks toggle to switch it on. If you already have this activated, well you deserve another cookie .
3. Create an Incoming Webhook
Now that Incoming Webhooks are enabled, the settings page should refresh and some extra options will appear. One of those options will be a really helpful button marked Add New Webhook to Workspace, and you should click it.
What this button does is trigger a shortcut version of the installation flow for Slack apps, one that is completely self-contained so that you don’t have to actually build any code to generate an Incoming Webhook URL. We’ll , but for now you’ll see something like the following screen:
Go ahead and pick a channel that the app will post to, and then click to Authorize your app.
You’ll be sent back to your app settings, and you should now see a new entry under the Webhook URLs for Your Workspace section, with a Webhook URL that’ll look something like this:
That URL is your shiny new Incoming Webhook, one that’s specific to a single user, and a single channel. We’ve kind of run out of cookies, but nice work anyway!
Let’s see how you can actually use that webhook to post a message.
Keep it secret, keep it safe. Your webhook URL contains a secret. Don’t share it online, including via public version control repositories. Slack actively searches out and revokes leaked secrets.
4. Use your Incoming Webhook URL to post a message
Later in this doc we’ll explain , but for right now something simple will do, so we’re going to use that old standby — «Hello, world».
After all this build up, you might think posting a message will be really complicated, but it’s very simple. Just make an HTTP POST request like this:
The URL that you’re making the POST request to should be the same URL you generated in the previous step.
That’s it! Go and check the channel that your app was installed into, and you will see that the «Hello, World» message has been posted by your app.
You can use this in a real Slack app without much change, just substituting your favorite HTTP Request library for cURL, but structuring all the requests in the exact same way. You will also need to pay attention to some details when you’re distributing your app.
Incoming Webhooks do not allow you to delete a message after it’s posted. If you need a more complex chat flow, including message deletion, call .
Great work, you’ve set up Incoming Webhooks for your Slack app and made a successful test call, and you’re ready to start making those messages more interesting and useful. Also, we baked some extra cookies to celebrate .
Ping and Pong
Clients should try to quickly detect disconnections, even in idle periods, so
that users can easily tell the difference between being disconnected and
everyone being quiet. Not all web browsers support the WebSocket ping spec, so
the RTM protocol also supports ping/pong messages. When there is no other
activity clients should send a ping every few seconds. To send a ping, send
the following JSON:
You can supply any number of extra «flat» arguments (that is: only scalar
values, no arrays or objects). These will be included in the pong message that
is sent back. For example, a client could include a local timestamp in the
ping message so it can calculate round-trip latency:
This will be included in the reply from the server:
What can the Slack platform do?
The Slack platform offers a couple of different routes to automate and enhance your Slack workspaces:
- provide a no-code solution to automate routine tasks, using predefined triggers and steps.
- use a range of APIs to access much deeper levels of customization.
You can use workflows and apps on their own, or combine them as your needs demand. Read on to learn more and decide the best route for you.
Workflows: automate routine actions, no code needed
Slack workflows are no-code solutions that automate routine tasks in Slack. Workflows are built with Workflow Builder using a limited set of triggers and steps.
Triggers initiate a workflow. They may be user-invoked actions, like selecting a shortcut or reacting with an emoji. Or they could be automatic, like scheduled dates and times, or posting to a webhook.
Steps follow the trigger’s lead. A step can perform a basic task such as post a message into a conversation or prompt a user for short-form information in a modal.
You can build custom workflows from within Slack, or start off with templates like daily stand-ups or request triaging.
If you want greater customization and extensibility, read on to learn about apps and the surfaces in which they appear.
Slack apps: go beyond automation using APIs
Apps have access to the full scope of the platform, paving the way for more enhanced, custom, and powerful experiences in Slack.
To make this magic happen, every Slack app has access to a bag of tricks — a range of APIs that provide access to read, write, and update all kinds of data in Slack.
Some of these features mirror what users can do in Slack clients:
Send messages to all kinds of using Web APIs and webhooks.
Create, archive, and manage conversations using conversation-specific Web APIs.
Receive notifications about mentions, app home opens, and other various goings-on via Events APIs.
Create and update to give users a persistent space to interact and stay informed.
Empower users to invoke interaction at any time with shortcuts.
Open to collect info and provide a space for displaying dynamic details.
Publish interactive components in , , and to enable action and reaction.
Automate the management of users, apps, and workspaces using various enterprise-focused APIs.
They say a magician never reveals their secrets. But we’re bound to a different kind of code, so here are some revelatory guides to explore:
Learn the process of choosing features for your app with guides on planning your Slack app.
Explore how to define the look and feel of your app with guides on designing Slack app experiences.
Develop a toolset to construct your Slack apps with guides on building Slack apps.
Adding secondary attachments
This feature is a legacy part of messaging functionality for Slack apps. We recommend you stick with Block Kit as above, but if you still want to use attachments,
When you use blocks as we described above, they will appear in the top-level of your message. This is the best location for primary content, the data and information that is unmissable and important.
However, you can attach things to a secondary part of the message, content that adds further context or additional information but isn’t vital.
The screenshot below shows the previous example, but with some secondary content added:
Building attachments
Secondary content can be attached by using a top-level array within your message JSON payload:
Within the array, you can also include a second-level array, . Here’s the JSON payload from the , this time inside of an attachment:
Secondary attachments have a few additional parameters that can be included within each object in the array. Take a look at our reference guide for secondary attachments to see the full list.
When should I use secondary attachments?
Secondary attachments are a legacy part of the messaging functionality. While we aren’t deprecating them, you should understand that they might change in the future, in ways that reduce their visibility or utility.
We’ve already mentioned that we recommend the array only contain secondary content that is less important to the intent of the published message.
Any content displayed within may be wrapped, truncated, or hidden behind a «show more» style option by Slack clients. This isn’t the case with the top-level field.
In short, we recommend you use Block Kit for as much of your message composition as you can, and avoid using attachments if possible. Blocks have many more visual and interactive capabilities available.
Understanding modal flows
In our overview of modals, we the concept and flow of the modal .
Here is that flow again, this time in a more technical form:
-
A user interacts with an app entry point. This sends an to the app.
-
With the from the payload, (view A), the app uses .
-
The user interacts with an interactive component in view A. This sends another to the app.
-
The app uses the context from this new payload to with some additional content.
-
The user interacts with another interactive component in view A. Another interaction payload is sent to the app.
-
This time the app uses the context from the new payload to , causing it to appear to the user immediately. View A remains in the view stack, but is no longer visible or active.
-
The user enters some values into in view B, and clicks the view’s submit button. This sends a to the app.
-
The app and by .
In the following guide we’ll break down all the steps within this flow, including alternative choices the app could have made in various steps.
Cемь лет истории
Slack был запущен Стюартом Баттерфилдом в августе 2013 г., а само его название – это сокращение от «Searchable Log of All Conversation and Knowledge», что переводится как «Журнал бесед и данных с функцией поиска». Slack обладает всеми возможностями современных мессенджеров, в том числе позволяет участникам команды общаться в каналах, приватных группах и непосредственно друг с другом, а также проводить поиск по содержимому бесед.
Slack умеет интегрироваться с сервисами Google Drive, Trello, Dropbox, Box, Heroku, IBM Bluemix, Crashlytics, GitHub, Runscope и Zendesk. В марте 2016 г. в мессенджер были добавлены функции голосовых и видеозвонков.
Как пандемия изменила подходы к организации рабочего пространства
Интеграция
По итогам II квартала финансового 2021 года, завершившегося для Slack 31 июля 2020 г., выручка компании выросла на 49% год к году и достигла $215,9 млн при одновременном сокращении убытков с $359,6 млн за аналогичный период прошлого финансового года до $73 млн. Компания также сообщила о 30-процентном росте количества платных клиентов год к году – из стало 130 тыс.
Welcome to Slack
Спустя несколько лет нам пришлось задуматься о смене корпоративного мессенджера. Хотя с технической точки зрения Jabber в целом устраивал, мобильные клиенты были достаточно архаичными. Это вызывало проблемы с настройкой и подключением у тех сотрудников, которые не имеют непосредственного отношения к IT. Самостоятельная настройка Jabber для сотрудников той же бухгалтерии была нетривиальной задачей.
Параллельно появился сначала WhatsApp, а потом и Telegram, которые были на порядок удобнее своих предшественников, поэтому очень скоро мы обнаружили что по факту вся переписка сотрудников идет в Telegram, а официальный корпоративный Jabber пришел в полное запустение. Этого ли мы хотели?
Для того, чтобы предотвратить потенциальные утечки данных и обеспечить единообразную коммуникационную среду для всех сотрудников, мы задумались о переезде на Slack. Этот сервис привлекал удобством использования, возможностью централизованного администрирования, а также интеграцией с системами мониторинга и управления инцидентами. Также у него было неплохое, стабильно работающее, мобильное приложение.
Что изменилось благодаря Slack:
Теперь при приеме на работу все сотрудники автоматически получали аккаунт, где уже есть все коллеги, что сильно облегчало онбординг и помогало при необходимости делать массовые объявления и получать обратную связь.
Любое событие от мониторинга или непосредственно от устройств прилетало прямо в мессенджер ответственному сотруднику или отделу
Обо всех инцидентах инфраструктуры мгновенно оповещались все сотрудники, чтобы действовать соответствующим образом.
При совместной работе с документами в Google Docs, Slack оповещал о сделанных изменениях и тем самым сразу обращал на них внимание получателя.
Впоследствии в Slack прокрались и разнообразные боты, например, наш собственный HR-бот, позволявший бронировать переговорные комнаты, узнавать даты выплаты заработной платы и даже просто поболтать с «искусственным интеллектом», если все люди надоели.
Authentication
How do I authenticate my requests to Slack?
By token
When working with Slack apps or Web API, you’ll often need to send access tokens, also known as bearer tokens, along with inbound requests using the query parameter.
Some of the tokens you’ll be given while going through the integration creation process. Other tokens you obtain by sending users through the OAuth 2.0 authentication flow.
When you’re working with Slack apps, you’ll be awarded access tokens after a user approves your application.
You can also obtain workspace-specific test tokens for use with the Web API using our token generator, but they should not be shared with the public or other workspaces.
By private URL
Your incoming webhooks URLs are unique for your integration or application and do not require token-based authentication. also already encode your integration or application’s identity.
Webhook URLs generated by also encode the information you need to connect, though requesting itself requires a as described above.
How do I authenticate requests from Slack to me?
Use the signing secret to compute a signature, and verify that the signature on the request matches.
Note: This process is strongly preferred over the use of deprecated verification tokens.
You can also use . Mutual TLS verifies the identity of Slack in a TLS-terminating server, before a request reaches your application code.
How does Slack authenticate its requests to my servers?
When you configure Outgoing webhooks, Slash commands and Message buttons, you specify a URL for Slack to send requests when qualifying conditions are met. Slack also provides you a token related to that integration.
Slack sends that URL a JSON payload containing a field. Compare that field to values you’ve received from Slack. See for more information.
Authorization codes must be exchanged for an access token within 10 minutes by calling oauth.access as part of the authorization flow. Otherwise, the authorization code will expire and you will need to ask the user to go through OAuth again.
How do I revoke a token?
For workspace apps, use the method to uninstall an app completely, revoking all tokens.
If you want to dispose of a single OAuth access token, use . It works with tokens from Sign in with Slack as well as from Add to Slack.
For classic Slack apps, revoking the last token associated between your application and a workspace effectively uninstalls the app for that workspace.
Members and administrators can remove your app through their workspace administration interface.
Though it’s somewhat of a nuclear option, you also have the ability to revoke all tokens from your developer dashboard by selecting your application and using the Revoke all tokens button found there.
How do I reset my client secret?
To reset your client secret, go to your developer dashboard, select the application you are concerned about, use the Change secret button found there.
Don’t forget to use your new secret when exchanging authorization codes for access tokens while authorizing users and workspaces with OAuth 2.0.
Token strings could potentially be as long as 255 characters. Historically and typically, they’ve been shorter. Learn more.
Your next steps
You might have found something to pique your interest as you went through this overview. But if you kept diligently reading to this point, here’s a reminder of what we recommend as next steps.
We some of the features available to Slack apps, but how do you know which your app should use? We have a section dedicated to planning your Slack app that will guide you on the right course.
It’s extremely likely that the app you plan will be communicating with users. If so, read our section on designing a great app experience.
When it comes time to build that app, you don’t need to write everything from scratch. Take advantage of our SDKs and developer tools to make the job simpler and quicker.