¿Es posible detectar cuando un usuario abre la ventana de chat en Facebook?

votos
1

Estoy intentando crear una conversacional, donde el fin de evitar el usuario que abre la ventana de chat y no saber las opciones disponibles, quiero dar algunas instrucciones básicas cuando el usuario abre la ventana de chat.

¿Hay alguna gatillo disponible cuando el usuario abre una ventana de chat? Tal vez entonces puedo comprobar y, si no hay una conversación en curso que pudiera proporcionar instrucciones básicas.

Hice algunas google y no encontré nada acerca de esto. ¿Es posible hacer algo como esto, y si no, ¿hay una manera de mitigar este problema, y ​​proporcionar al usuario información sobre las capacidades del Chatbot y ver las instrucciones?

Publicado el 20/02/2017 a las 17:05
fuente por usuario
En otros idiomas...                            


3 respuestas

votos
2

Creo que la respuesta no es ácido.

Pero se puede interceptar la IConversationUpdateActivity tipo de mensaje para saber si el usuario ha agregado el robot a una conversación. En la plantilla de proyecto de C # se puede encontrar un bloque de código que piden este tipo de mensaje, pero no hacen nada.

Respondida el 20/02/2017 a las 17:50
fuente por usuario

votos
3

Puede supervisar durante dos tipos de eventos: ConversationUpdate y ContactRelationUpdate.

La primera (ConversationUpdate) se llama cuando se añade o se elimina de la conversación de un usuario. Por lo tanto, hay un lugar donde se puede introducir opciones disponibles. Será cada tipo ha comenzado la nueva conversación. Por lo tanto, puede llegar a ser molesto, es posible añadir un cheque - no lo muestran si el usuario ha estado utilizando el robot durante algún tiempo.

El segundo (ContactRelationUpdate) se llama cuando un usuario añade o elimina el bot a / de los contactos. En general, sólo se llama una vez por acción del usuario.

Aquí está el extracto de los ejemplos Bot-Marcos:

para 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
    }
});

Para 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;
}
Respondida el 21/02/2017 a las 09:41
fuente por usuario

votos
5

Facebook no permite que los robots para iniciar la conversación a diferencia de Skype u otra plataforma. Hay algunos trucos que todavía se puede hacer:

  • Ir en que la página de Facebook a continuación, a continuación, Ajustes de mensajería y marca "Mostrar un saludo Messenger" como abajo, y escribir su frase de saludo. introducir descripción de la imagen aquí

El resultado se verá así:

introducir descripción de la imagen aquí

Respondida el 21/02/2017 a las 16:10
fuente por usuario

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