2017-02-20 39 views
1

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

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

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

+0

Вы можете следовать этому подходу: https://jsfiddle.net/tjepp6n1/ – Hackerman

ответ

2

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

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

3

Вы можете отслеживать два типа событий: РазговорUpdate и 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; 
} 
5

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

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

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

enter image description here

+0

ConversationUpdate и ContactRelationUpdate не срабатывает, когда пользователь открывает диалоговое окно Чата на Facebook. Тем не менее, они отлично работают на других платформах. –

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

  • Нет связанных вопросов^_^