Как я могу реагировать на сообщение с пабом / суб бот - PullRequest
0 голосов
/ 06 февраля 2019

Я создал карту с кнопкой и действием onClick, которое успешно отправляет сообщение моему клиенту с типом "CARD_CLICKED".Когда я пытаюсь ответить на это сообщение сообщением типа «NEW_MESSAGE» или «UPDATE_MESSAGE», оно отображается как новое сообщение, в то время как API трижды пытается отправить это событие CARD_CLICKED моему боту, пока оно не сдается свизуальная ошибка: «Невозможно связаться с [ботом]. Повторите попытку позже».

Я думаю, это похоже на

, но я использую клиент golang, и ответы на эти вопросы мне не помогли...

Мой код для ответа на сообщение "CARD_CLICKED":

func handleClick(message *chat.DeprecatedEvent) *chat.Message {
    log.Debugf("User %s instructed me to execute %s", message.User.DisplayName, message.Action.ActionMethodName)

    response := &chat.Message{
        ActionResponse: &chat.ActionResponse{Type: "UPDATE_MESSAGE"},
        Thread:         &chat.Thread{Name: message.Message.Thread.Name},
        Space:          &chat.Space{Name: message.Message.Space.Name, Type: message.Message.Space.Type},
        Text:           "CARD CLICKED!",
    }
    return response
}

Мой код основан на этом проекте: https://github.com/jforman/hangbot

1 Ответ

0 голосов
/ 09 февраля 2019

Выяснил, в чем заключалась основная проблема ... Я вызывал функцию .Create (), которая создавала новое сообщение и, таким образом, даже несмотря на то, что ответ на действие был задан правильно, это не интерпретировалось как ответ на щелчоксобытие: https://github.com/jforman/hangbot/blob/master/hangbot.go#L79

После того, как я переключился на вызов .Update () - в чате больше не будет отображаться сообщение «Unable to contact» о моем боте.

Осталось только нажатьсобытие все еще отправлено мне три раза, но теперь я фильтрую события на основе eventTime, который пока работает нормально.

...