приветственное сообщение в ConversationUpdate для мессенджера

Используя ConversationUpdate, я показываю приветственное сообщение. Я протестировал код в эмуляторе фреймворка бота, где он отлично работает.

Я попробовал это в мессенджере facebook и не получил ответа.

Вопрос: поддерживается ли это в мессенджере?

IConversationUpdateActivity update = message as IConversationUpdateActivity;

var client = new ConnectorClient(new System.Uri(update.ServiceUrl), new MicrosoftAppCredentials());
if (update.MembersAdded != null)
{
    foreach (var newMember in update.MembersAdded)
    {
        if (newMember.Id != update.Recipient.Id)
        {
            var reply = ((Activity)update).CreateReply($"Hello "+newMember.Name);

            client.Conversations.ReplyToActivityAsync(reply);
       }
   }
}

В частности, бот должен показывать приветственное сообщение каждый раз, когда участник начинает разговор. Также я добавил код:

newMember.Id != update.Recipient.Id 

потому что сообщение появлялось дважды в эмуляторе.

Остальные довольно просты и должны работать. Какие-нибудь мысли?


person J-K    schedule 08.11.2018    source источник


Ответы (1)


Событие ConversationUpdate не поддерживается в канале Facebook Messenger. Facebook Messenger по умолчанию не транслирует событие, когда пользователи открывают чат. Есть два варианта добиться аналогичного поведения:

  1. Используйте Начало работы. свойство для отслеживания новых разговоров. Я написал сообщение в блоге о как перехватить это конкретное событие в BotBuilder V3, вы можете сделать что-то подобное для BotBuilder V4.

  2. Ответьте своим приветственным сообщением после первого взаимодействия пользователя с сообщением.

person Mick    schedule 08.11.2018