Можно ли определить, когда пользователь открывает окно чата на Facebook?

голоса
1

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

Есть ли триггер доступна, когда пользователь открывает окно чата? Может быть, тогда я могу проверить, и если есть не постоянный разговор, который я мог бы предоставить основные инструкции.

Я сделал некоторые погуглите и не нашел ничего об этом. Можно ли сделать что-то вроде этого, и если нет, то есть способ, чтобы смягчить эту проблему и предоставить пользователю информацию о возможности Chatbot и поддерживаемые инструкции?

Задан 20/02/2017 в 20:05
источник пользователем
На других языках...                            


3 ответов

голоса
2

Я думаю, что кислота ответ нет.

Но вы можете перехватить IConversationUpdateActivity сообщения типа , чтобы знать , если пользователь добавил бот к разговору. В шаблоне # проекта C вы можете найти блок кода , который задать для этого типа сообщения , но ничего не делает.

Ответил 20/02/2017 в 20:50
источник пользователем

голоса
3

Вы можете следить за два типов событий: ConversationUpdate и ContactRelationUpdate.

Первый (ConversationUpdate) вызывается, когда пользователь был добавлен или удален из разговора. Таким образом, есть место, где вы можете ввести доступные варианты. Это будет каждый тип начал новый разговор. Таким образом, это может стать раздражающим, вы можете добавить чек - не показывать, если пользователь использует бот в течение некоторого времени.

Второй (ContactRelationUpdate) вызываются, когда пользователь добавляет или удаляет бот / из контактов. В общем, она вызывается только один раз за действиями пользователя.

Вот выдержка из примеров Bot-фреймворков:

Для Node.js

bot.on('conversationUpdate', function (message) {
   // Check for group conversations
    if (message.address.conversation.isGroup) {
        // Send a hello message when bot is added
        if (message.membersAdded) {
            message.membersAdded.forEach(function (identity) {
                if (identity.id === message.address.bot.id) {
                    var reply = new builder.Message()
                            .address(message.address)
                            .text("Hello everyone!");
                    bot.send(reply);
                }
            });
        }

        // Send a goodbye message when bot is removed
        if (message.membersRemoved) {
            message.membersRemoved.forEach(function (identity) {
                if (identity.id === message.address.bot.id) {
                    var reply = new builder.Message()
                        .address(message.address)
                        .text("Goodbye");
                    bot.send(reply);
                }
            });
        }
    }
});

bot.on('contactRelationUpdate', function (message) {
    if (message.action === 'add') {
        var name = message.user ? message.user.name : null;
        var reply = new builder.Message()
                .address(message.address)
                .text("Hello %s... Thanks for adding me. Say 'hello' to see some great demos.", name || 'there');
        bot.send(reply);
    } else {
        // delete their data
    }
});

Для C #

private void HandleMessage(Activity message)
{
    if (message.Type == ActivityTypes.ConversationUpdate)
    {
                if (activity.MembersAdded.Any(m => m.Id == activity.Recipient.Id))
                {
                    var connector = new ConnectorClient(new Uri(activity.ServiceUrl));

                    var response = activity.CreateReply();
                    response.Text = "Hi! I am Bot. Here's what you can do...";

                    await connector.Conversations.ReplyToActivityAsync(response);
                }
    }
    else if (message.Type == ActivityTypes.ContactRelationUpdate)
    {
        if (Activity.AsContactRelationUpdateActivity().Action ==                ContactRelationUpdateActionTypes.Add)
        {
                    var connector = new ConnectorClient(new Uri(activity.ServiceUrl));

                    var response = activity.CreateReply();
                    response.Text = "Hi! I am Bot. Thanks for adding me. Here's what you can do...";

        }
    }
    return null;
}
Ответил 21/02/2017 в 12:41
источник пользователем

голоса
5

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

  • Перейти на вас Facebook страницы, то настройки, затем Сообщения и установите флажок «Показать гонец приветствие», как показано ниже, и написать поздравительную фразу. введите описание изображения здесь

Результат будет выглядеть следующим образом:

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

Ответил 21/02/2017 в 19:10
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more