2017-02-21 4 views
2

Я хочу подписаться на API-интерфейс Slack Events для любого сообщения, размещенного в слабом канале. Это следующие шаги, которые я принял, как указано в Slack Event API documentations.Мой URL-адрес запроса не принимает никаких событий для API-интерфейса Slack Events. Что мне не хватает?

  1. Я создал слабину приложения со следующими областями разрешения:
    • каналы: история, группы: историей, им: история, mpim: история
  2. В подписках событий, я включил событие, подтвержденный URL-адрес запроса («https://api.example.com/slack/event/push») и подписан на следующие мероприятия команды:
    • channel_history_changed, group_history_changed, message.channels, m essage.groups, message.im, message.mpim
  3. Я просил пользователя пройти авторизацию для установки приложения. Ниже показан URL-адрес с объемом и перенаправлением uri. (Код PHP)

    $ url = "https://slack.com/oauth/authorize/?client_id=". SLACK_CLIENT_ID. «& scope = users.profile: прочитайте, пользователи: читайте, группы: история, каналы: история, им: история, mpim: история». "& redirect_uri =". urlencode ('https://api.example.com/slack/oauth/callback'). "& состояние = XXXXXXXXX";

  4. Я получаю код от slack, который я обмениваю на токен доступа.

    Токен доступа: xoxp-XXXXXXXXX-XXXXXXXXX-XXXXXXX-XXXXXXXXXXXXXXXXXXXX Область применения: определить, каналы: история группы: история, им: история, mpim: история, пользователей: читать, users.profile: прочитать ID команды: XXXXXXXX

Я проверил приложения и интеграцию команды, чтобы увидеть, если приложение было установлено и да это в списке приложений.

Теперь, исходя из моего понимания, когда какое-либо сообщение размещено на любом канале команды, на мой проверенный URL-адрес («https://api.example.com/slack/event/push») должен быть отправлен запрос POST. Но я не получаю никакого запроса POST.

Я думал, что URL-адрес сломан, но я тестировал его с помощью счетчика, и каждый раз, когда URL-адрес попадает, он увеличивает счетчик. Таким образом, URL-адрес прекрасен.

Есть ли какой-то шаг, который я где-то пропустил? Я не знаю, что попробовать дальше.

+0

Ваш подход выглядит нормально. Одна вещь, которую я хотел бы попробовать, - убедиться, что ваш PHP-скрипт действительно получает запросы POST. Включите полную запись в свой скрипт, и вы используете инструмент [hurl.it] (https://www.hurl.it/), чтобы отправить ему запрос POST. Сначала я бы попробовал с публичного канала. –

+0

Я думал, что это может быть причиной и тщательно проверить мою конечную точку. Моя конечная точка POST ничего не делает, кроме как увеличивать счетчик в кэше redis. Я смотрю, увеличивается ли счетчик. Когда я ударяю конечную точку из POSTMAN или браузера, он увеличивает штраф, а это означает, что конечная точка не является неисправной. Я проверил событие с hurl.it, и проблем нет. Я читал в одном из документов, если конечная точка возвращает слишком много ошибок, а затем деактивирована на некоторое время. Я думал, что это может быть причиной, потому что он возвращал ошибку, когда я ее впервые установил. Но это был день и все еще я не вижу каких-либо почтовых запросов. –

+0

Правильно ли преобразовывает urlencode ваш URL-адрес перенаправления? И «redirect_uri» должен соответствовать исходному URI (если он был отправлен)?? – DomeTune

ответ

1

Я связался с поддержкой Slack, и они были очень полезны. Журналы в слабом состоянии показали, что Slack фактически отправлял POST-запросы на мой URL-адрес запроса. Так что моя настройка работала нормально. Но моя инфраструктура API не смогла разобрать тело запроса и, следовательно, отправить внутреннюю ошибку сервера (500) в Slack. Мы поняли это, используя requestb.in.

Все, что я должен был сделать, это изменить способ обработки тела запроса.

+0

Вы должны сделать это раньше. Потерпел ваш репутат (щедрость) –

+0

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

+0

Нет, я просто говорю, что вы можете сделать это, прежде чем добавить щедрость. –

Смежные вопросы