Как проще всего найти идентификатор Slack-команды и идентификатор канала?

Мы пытаемся настроить диплинкинг в Slack, как описано здесь:

https://api.slack.com/docs/deep-linking

В документе указано, что для открытия конкретной команды необходимо использовать следующий URL:

slack: // open? team = {TEAM_ID}

Откройте Slack и переключите команды на указанную команду. Предоставленный TEAM_ID должен быть строкой, например T12345.

Кроме того, чтобы открыть канал в команде, следует использовать следующий URL:

резерв: // канал? team = {TEAM_ID} & id = {CHANNEL_ID}

Откройте канал, указанный в CHANNEL_ID в поле id, например C024BE91L. Также необходимо указать команду с TEAM_ID.

У меня простой вопрос. Где я могу узнать, какой TEAM_ID мне нужен и какой CHANNEL_ID мне нужен?


person lfboulanger    schedule 02.12.2016    source источник
comment
В зависимости от того, как вы это делаете, вы сможете получить POST со всей необходимой информацией: например, api.slack.com/outgoing-webhooks   -  person ntgCleaner    schedule 02.12.2016
comment
Принятый ответ больше не работает в 2019 году. Рассмотрите возможность изменения принятого ответа на ответ @SamuelDev, который действительно работает. stackoverflow.com/a/57246565/190298   -  person Nic    schedule 11.10.2019
comment
Спасибо @Nic! Просто сделал это, извините за задержку.   -  person lfboulanger    schedule 02.01.2020


Ответы (10)


По состоянию на июль 2019 года похоже, что идентификатор команды и идентификатор канала уже отображаются в Интернете.

введите описание изображения здесь

Как вы можете видеть на скриншоте, узел со второго по последний - это идентификатор команды (с префиксом "T"), а последний узел - это идентификатор канала (с префиксом «С»). Все, что вам нужно сделать, это открыть Slack через Интернет, перейти на определенный канал, и вы увидите, что URL-адрес изменился на что-то похожее на снимок экрана выше.

person SamuelDev    schedule 29.07.2019
comment
Это единственный подход, который у меня сработал в 2019 году. - person Nic; 11.10.2019
comment
ПРИМЕЧАНИЕ: вам не действительно нужно запускать веб-интерфейс - просто скопируйте ссылку на любое сообщение в интересующем общедоступном канале выбранное вами клиентское приложение - и проверьте полученный URL - person Anton Kraievyi; 10.02.2020
comment
@AntonK, хммм, я не знаю, как это сделать. Я пробовал это в своем приложении Slack Windows (v4.2.0). Я скопировал ссылку на одно из сообщений в один из наших общедоступных каналов, и URL-адрес выглядел так: https://team.slack.com/archives/C########/p################. Я, вероятно, могу получить идентификатор канала, но не идентификатор команды. - person SamuelDev; 11.02.2020

Вот самый простой способ найти идентификаторы Slack ID вручную

1. Любой идентификатор канала.

Откройте слабую веб-страницу (http://yourteam.slack.com), а затем просто откройте канал. ID канала отображается в URL-адресе браузера:

получить любой идентификатор канала


2. Любой идентификатор пользователя.

Чтобы найти идентификатор пользователя, вам нужно открыть консоль инструментов разработчика браузера и проверить ссылку пользователя на боковой панели. Идентификатор пользователя можно найти в атрибуте HTML "data-member-id":

получить любой идентификатор пользователя

Или в резерве: (1) Щелкните имя пользователя и выберите (2) «Показать профиль». Затем откройте меню «...», и вы увидите опцию (3) «Копировать идентификатор участника ...» - , чтобы получить свой собственный идентификатор пользователя через пользовательский интерфейс, вы должны щелкнуть логотип команды вверху -левый угол, а затем выберите «Профиль и учетная запись» (это не показано на скриншоте)

получить идентификатор пользователя для членов команды


3. ID команды

Просто откройте инструменты разработчика вашего браузера, перейдите на вкладку «Консоль» и введите текст boot_data.team_id в консоль. Это отобразит идентификатор вашей команды:

получить идентификатор команды

person Philipp    schedule 03.07.2017
comment
Спасибо @ Paulin'tHout - как-то я перепутал идентификатор команды с идентификатором пользователя ... Я обновил ответ, чтобы также описать, как быстро получить идентификатор команды - person Philipp; 01.10.2017
comment
Для поиска идентификатора канала и идентификатора команды, согласно исходному вопросу, это определенно самый быстрый и простой ответ, и он должен быть принятым ответом. - person gbe; 24.04.2018
comment
похоже, что форматы URL-адресов могли быть изменены на app.slack.com / client / ‹team_id› / ‹channel_id› / details / - person Ralph Callaway; 16.11.2019
comment
Привет @Philipp, пока это работает! Инструмент разработчика Slack делает это намного проще. Я бы рекомендовал проверить свой ответ здесь и рассмотреть возможность включения его в свой ответ, заранее спасибо ???? - person realappie; 22.02.2021

Немного другой ответ на уже существующие.

Всякий раз, когда я хотел быстро узнать, какие идентификаторы подходят для конкретной команды, я просто открывал веб-клиент Slack и проверял соответствующие элементы. (Использование инструментов разработчика Chrome)

https://my.slack.com/messages

Тег <a>, который ссылается на пользователя, как правило, включает атрибут data-member-id, содержимым которого является идентификатор пользователя.

То же самое и с каналами. Если вы проверите любой из каналов на боковой панели, вы увидите, что они упорядочены как <li> элементы списка, каждый из которых содержит идентификатор канала в имени класса.

Для идентификатора команды вы можете открыть весь исходный код веб-клиента Slack и нажать CTRL-F для своего team_domain (например, myslack55 для myslack55.slack.com), и это должно найти вам идентификатор команды.

По сути, все это скрыто на виду. Вам просто нужно знать, где искать;)

person Wilhelm Klopp    schedule 04.12.2016
comment
Спасибо! Это самый простой способ, который я видел до сих пор! - person lfboulanger; 11.12.2016
comment
информация team_domain отсутствует :( они могли ее удалить? - person Carlo; 21.12.2016
comment
@Carlo Кажется, я все еще могу его найти. Что именно вы пытаетесь сделать? :) - person Wilhelm Klopp; 21.12.2016
comment
Отличное предложение! Мне было трудно проанализировать все элементы HTML, особенно для TEAM_ID, но, просмотрев запросы XHR в Chrome Dev Tools, я сразу нашел то, что мне нужно. Проверьте ответ от auth.currentSessions для TEAM_ID и channels.info или pins.list для CHANNEL_ID. - person Nic Benders; 11.01.2017
comment
Очень умное решение. Но я этого не вижу. Перешел к https://my.slack.com/messages, затем к разработчику ›Источник (в Chrome). Поиск показывает только этот блок: // called by ssb when online var proceedToApp = function(last_team_domain_arg) { // do nothing, we're already in the app } - person mbb; 14.01.2017
comment
Ах, извините, я не имел в виду буквально team_domain. Я имел в виду team_domain, который my разрешает в my.slack.com/messages - person Wilhelm Klopp; 14.01.2017
comment
Даже после ответа @WilhelmKlopp мне было сложно найти идентификатор команды. Для меня самым простым способом было: 1. найти api_token в источнике страницы и скопировать этот код 2. открыть это в браузере: https://slack.com/api/auth.test?pretty=1&token=<token-from-prev-step-here> 3. в ответе скопировать значение team_id - person bsmaniotto; 26.02.2017
comment
Приведенный выше ответ больше не работает для определения Team ID. Вместо этого используйте ответ от @Mbb. - person Camden S.; 03.04.2017
comment
Поиск team_id таким образом все еще работает для меня, к вашему сведению. Все, что вам нужно знать, это ваш team_domain, что должно быть очевидно. - person Wilhelm Klopp; 03.04.2017
comment
Я нашел team_id поиском его в источнике страницы. Это было в объекте под названием boot_data. - person zackdever; 07.07.2017
comment
Почему эти данные не так легко доступны на веб-сайте? Для меня это не имеет смысла - person Amon; 14.02.2018

Ответ, помеченный здесь как правильный, мне не подходит, но, возможно, я нашел еще более простой способ с тестовыми токенами.

  1. Создайте тестовый токен: https://api.slack.com/docs/oauth-test-tokens

  2. Прокрутите вниз до "Попробуйте прямо сейчас!" кнопка. Вы попадаете на auth.test: https://api.slack.com/methods/auth.test/test

  3. Выберите команду, которую хотите протестировать, и нажмите Метод тестирования. Вы можете найти там свой team_iduser_id).

  4. Сделайте то же самое для channels.list. Вы можете нажать «Просмотреть другой метод» и выполнить поиск или перейти по адресу: https://api.slack.com/methods/channels.list/test

  5. Снова выберите команду и Метод тестирования. Cmd + F через объект channels в поисках того, что вам нужно channel_id.

person mbb    schedule 14.01.2017
comment
Спасибо, для меня это был самый простой способ. - person Omertron; 08.03.2017

По состоянию на 2017 год, похоже, что слабину было проще найти.

Вот самый простой способ найти идентификаторы команд вручную.

Посетите свою комнату отдыха через веб-браузер. Щелкните правой кнопкой мыши> «Просмотреть исходный код»

И найдите Team_id:

person Rocky Kev    schedule 27.07.2017


Вы также можете просто щелкнуть правой кнопкой мыши свободный канал (или прямое сообщение) в настольном приложении и выбрать опцию «Копировать ссылку».

Это даст вам URL-адрес в форме: https://org.slack.com/messages/[channel-IDsizes]

Я подтверждаю, что это работает на High Sierra Mac OSX - Slack 3.1.1

person Joel    schedule 01.05.2018
comment
Это, безусловно, лучший и самый простой ответ. Спасибо - person Joaquin Iurchuk; 17.01.2020

Если вы используете приложение Slack, вы можете просто щелкнуть правой кнопкой мыши имя канала в левом меню и нажать Copy link, вставить его куда-нибудь, и вы увидите идентификатор канала.

person Radu Ciobanu    schedule 06.10.2020
comment
Чтобы добавить немного к этому ответу, ссылка будет выглядеть так: https://netmediagroup.slack.com/archives/CHANNELID. Для меня это было проще всего. Я не хотел устанавливать приложение. Спасибо - person nzajt; 09.02.2021

Идентификатор команды

Самый простой способ получить идентификатор своей команды - использовать метод auth.test в Slack API. с вашим токеном доступа.

Идентификатор канала

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

Обратите внимание, что вы можете видеть только частные каналы, в которые был приглашен пользователь / бот, принадлежащий вашему токену доступа.

Токен доступа

Чтобы получить токен доступа, вы можете запросить «тестовый токен» на странице Slack API в разделе «Тестовый токен» (рекомендуется только для целей тестирования Slack). Или вы можете создать приложение Slack и установить это приложение для своей команды Slack с помощью Oath, который также сгенерирует токен доступа для конкретного приложения.

person Erik Kalkoken    schedule 02.12.2016
comment
Плохо, что Slack не предоставляет поиск каналов по имени. Их часто задаваемые вопросы просто предлагают пройтись по всему списку каналов, чтобы найти тот, который вам нужен: См. Как мне найти идентификатор канала, если у меня есть только его #name? на api.slack.com/faq - person Camden S.; 16.05.2017
comment
@CamdenS .: Теперь это можно сделать с помощью недавно добавленной функции интерактивного меню. Посмотрите мой соответствующий ответ: Автозаполнение канала - person Erik Kalkoken; 16.05.2017

Если вы пришли сюда, чтобы узнать, как получить доступ к этим значениям через API для конкретного пользователя (например, меня!) С помощью пакета @slack/bolt - вот пример того, как это сделать.

ID команды, ID канала и ID пользователя

app.message('hello'),
  async ({ say, body, context, message }) => {
  const teamResponse: any = await app.client.team.info({
    token: context.botToken,
    user: message.id,
  });

  // An object containing the team data that Slack has stored
  const team: SlackGeneratedTeam = teamResponse.team;

  // User ID
  console.log(message.id)

  // Team ID
  console.log(team.id)

  // channel ID
  console.log(message.channel)
})
person Alex Hughes    schedule 16.12.2020