Sie können für zwei Ereignistypen überwachen: ConversationUpdate und ContactRelationUpdate.
Die erste (ConversationUpdate) wird aufgerufen, wenn ein Benutzer hinzugefügt wird, oder aus dem Gespräch entfernt. So gibt es einen Ort, wo man Optionen vorstellen kann. Es wird jede Art sein, das neue Gespräch begonnen hat. So kann es lästig werden, Sie einen Scheck hinzufügen können - es nicht zeigen, wenn der Benutzer den Bot seit einiger Zeit verwendet hat.
Die zweite (ContactRelationUpdate) wird aufgerufen, wenn ein Benutzer hinzugefügt oder entfernt den Bot nach / von den Kontakten. In der Regel wird es nur einmal pro Benutzer Aktion aufgerufen.
Hier ist der Auszug aus den Bot-Frameworks Beispiele:
für 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
}
});
Für 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;
}