Ich möchte, dass mein Bot eine einführende Nachricht anzeigt, wenn ein Benutzer eine neue Konversation beginnt. Ich habe gesehen, dass dies mit Bots in Skype funktioniert, wo der Bot eine Nachricht sendet, bevor der Benutzer etwas eingibt.Bot Framework - Bot initiiert die Konversation über Skype
Ich habe diese Arbeit bekam den Bot Framework-Channel-Emulator mit diesem Code in der MessagesController-Klasse: 'Hallo Welt!'
public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
{
if (activity.Type == ActivityTypes.Message)
{
await Conversation.SendAsync(activity,() => new Dialogs.RootDialog());
}
else
{
await this.HandleSystemMessage(activity);
}
var response = Request.CreateResponse(HttpStatusCode.OK);
return response;
}
private async Task HandleSystemMessage(Activity message)
{
if (message.Type == ActivityTypes.ConversationUpdate)
{
var reply = message.CreateReply("Hello World!");
var connector = new ConnectorClient(new Uri(message.ServiceUrl));
await connector.Conversations.SendToConversationAsync(reply);
}
}
Zeigt am Anfang einer neuen Konversation. Keine Eingabe erforderlich. Auf Skype erscheint diese einleitende Nachricht jedoch nicht. Was ich hier falsch verstehe? Ich weiß, dass es möglich ist.
haben bitte einen Blick auf https://stackoverflow.com/questions/42749982/initiate-a-message-from-bot-to-user-on-botframework – Artem
Danke, das ist interessant. Die angenommene Antwort unten beantwortet genau meine Frage obwohl – usefulcat