Czy jest możliwe aby wykryć, kiedy użytkownik otwiera okno czatu na Facebooku?

głosy
1

Próbuję stworzyć chatbota gdzie aby uniknąć otwierania użytkownik okno rozmowy i nie wiedząc, dostępne opcje, chciałbym podać kilka podstawowych wskazówek, gdy użytkownik otwiera okno czatu.

Czy istnieje jakiś wyzwalacz dostępne, gdy użytkownik otwiera okno rozmowy? Może wtedy mogę sprawdzić, a jeśli nie ma tam trwającej rozmowy mogę zapewnić podstawowe instrukcje.

Zrobiłem trochę googling i nic nie znalazłem na ten temat. Czy jest możliwe aby coś jak to zrobić, a jeśli nie, to czy jest jakiś sposób, aby złagodzić ten problem i zapewnić użytkownikowi informacji na temat możliwości Chatbot i obsługiwane instrukcje?

Utwórz 20/02/2017 o 20:05
źródło użytkownik
W innych językach...                            


3 odpowiedzi

głosy
2

Myślę, że odpowiedź nie jest kwas.

Ale można przechwycić IConversationUpdateActivity wiadomość typu wiedzieć, czy użytkownik wprowadził bota do rozmowy. W szablonie projektu C # można znaleźć blok kodu, które proszą o tego typu wiadomości, ale nic nie robią.

Odpowiedział 20/02/2017 o 20:50
źródło użytkownik

głosy
3

Można monitorować dwa rodzaje zdarzeń: ConversationUpdate i ContactRelationUpdate.

Pierwsza (ConversationUpdate) jest wywoływana gdy użytkownik został dodany do lub usunięty z rozmowy. Tak więc, jest to miejsce, gdzie można przedstawić dostępne opcje. Będzie to każdy rodzaj nowa rozmowa zaczęła. Tak, to może stać się irytujące, można dodać czek - nie pokazują go, jeśli użytkownik korzysta bot na jakiś czas.

Drugi (ContactRelationUpdate) jest wywoływana, gdy użytkownik dodaje lub usuwa bot do / z kontaktów. W ogóle, to jest wywoływana tylko raz na działania użytkownika.

Oto wyciąg z przykładów Bot-szkieletowe:

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

Dla 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;
}
Odpowiedział 21/02/2017 o 12:41
źródło użytkownik

głosy
5

Facebook nie zezwala na boty, aby zainicjować rozmowę przeciwieństwie Skype lub innej platformy. Istnieje kilka sztuczek można jeszcze zrobić:

  • Idź na ciebie stronie Facebook następnie Ustawienia, a następnie Wiadomości, a następnie zaznacz opcję „Pokaż powitania Messenger”, jak poniżej i napisz zdanie z życzeniami. wprowadzić opis obrazu tutaj

Wynik będzie wyglądać następująco:

wprowadzić opis obrazu tutaj

Odpowiedział 21/02/2017 o 19:10
źródło użytkownik

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