Slack API отправляет команды через веб-перехватчик

Я не уверен, возможно ли то, что я пытаюсь сделать. У меня есть приложение Slack, и через него я хочу управлять другим приложением Slack, которое мне не принадлежит.

Вероятно, это слишком абстрактно, поэтому давайте рассмотрим детали: есть SlackApp Foodtrain. Если вы пользователь, вы просто набираете «/ обеденное время, время местоположения», и он выполняет свою работу. Я хочу, чтобы мое приложение активировало Lunchtrain, но если я просто отправлю сообщение через Webhook с именем «/ Lunchtrain Location Time», оно не активирует команду. Вы можете увидеть это в виде открытого текста. Есть ли способ сделать это правильно? Всем спасибо за помощь!


person Sebastian Schuchmann    schedule 19.10.2017    source источник


Ответы (1)


Официальный Slack API не позволяет вам запускать команды с косой чертой, но есть недокументированный метод API под названием _ 1_ с этой функцией.

Пример использования:

https://slack.com/api/chat.command?token=TOKEN&channel=C123456789&command=/who

Дополнительные сведения см. В документации по этому методу на этом гитхабе. .

person Erik Kalkoken    schedule 19.10.2017
comment
Да, это почти работает, но не работает с / Lunchtrain - ›Сообщение об ошибке = error: 'unknown_command'. Любые идеи? Или это безнадежно, и это работает только со встроенными командами Slacks? - person Sebastian Schuchmann; 19.10.2017
comment
Нет, он также работает с пользовательскими командами косой черты. Просто протестировал его еще раз, чтобы убедиться. Вы уверены, что правильно написали команду? Помните, что вам нужно включить в вызов ведущую косую черту команды. - person Erik Kalkoken; 19.10.2017
comment
Привет, Себастьян Шухманн / @ Erik-Kalkoken, вы когда-нибудь придумали, как заставить это работать? Я сталкиваюсь с теми же проблемами «unknown_command», которые видел Себастьян, пытаясь следовать за этим. - person not-inept; 30.04.2018
comment
Собственно, я понял это, увидев stackoverflow.com/questions/40919745/, похоже, что команда должна быть просто командой /, а текст должен быть любыми аргументами, поэтому вы должны сделать что-то вроде command = '/ me', text = 'смешной текст'. - person not-inept; 30.04.2018