Is het mogelijk om te detecteren wanneer een gebruiker het chatvenster op Facebook opent?

stemmen
1

Ik ben op zoek naar een chatbot te creëren, waar om te voorkomen dat de gebruiker het chatvenster openen en niet het kennen van de beschikbare opties, wil ik een aantal fundamentele aanwijzingen te geven wanneer de gebruiker het chatvenster geopend.

Is er een trekker beschikbaar wanneer de gebruiker een chatvenster geopend? Misschien dan kan ik controleren, en als er niet een lopend gesprek kon ik basisinstructies te bieden.

Ik deed wat googlen en vond niets over dit. Is het mogelijk om iets als dit te doen, en zo niet, is er een manier om dit probleem te verzachten, en bieden de gebruiker informatie over de chatbot mogelijkheden en ondersteund instructies?

De vraag is gesteld op 20/02/2017 om 20:05
bron van user
In andere talen...                            


3 antwoorden

stemmen
2

Ik denk dat het zuur antwoord niet.

Maar je kunt het onderscheppen IConversationUpdateActivity soort bericht om te weten of de gebruiker de bot heeft toegevoegd aan een gesprek. In het C # project template kunt u een code blok die vragen om dit bericht type, maar niets doen vinden.

antwoordde op 20/02/2017 om 20:50
bron van user

stemmen
3

U kunt controleren op twee soorten gebeurtenissen: ConversationUpdate en ContactRelationUpdate.

De eerste (ConversationUpdate) wordt opgeroepen wanneer een gebruiker wordt toegevoegd of verwijderd uit de conversatie. Dus, er is een plek waar je beschikbare opties kunnen introduceren. Het zal elk type het nieuwe gesprek is begonnen zijn. Dus, kan het vervelend worden, kunt u een cheque te voegen - het niet laten zien als de gebruiker is het gebruik van de bot voor bepaalde tijd.

De tweede (ContactRelationUpdate) wordt opgeroepen wanneer een gebruiker toevoegt of verwijdert het bot naar / van de contacten. In het algemeen wordt slechts één keer per actie van de gebruiker genoemd.

Hier is het uittreksel uit het Bot-Frameworks voorbeelden:

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

Voor 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;
}
antwoordde op 21/02/2017 om 12:41
bron van user

stemmen
5

Facebook staat niet toe dat bots om het gesprek in tegenstelling tot Skype of een ander platform te starten. Er zijn een paar trucs die u kunt nog steeds doen:

  • Ga op je Facebook-pagina op Instellingen en vervolgens op Berichten en vink "Toon een boodschapper van de Groet", zoals hieronder, en schrijf uw begroeting zin. voer image beschrijving hier

Het resultaat ziet er als volgt uit:

voer image beschrijving hier

antwoordde op 21/02/2017 om 19:10
bron van user

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