2016-08-01 14 views
2

Ich versuche, einen Bot mit dem Bot-Framework von Microsoft zu implementieren. Ich habe die Dokumentation verfolgt, scheint aber die Schaltflächen nicht richtig hinzuzufügen. Auf Skype zeigt es eine Art von Miniaturansicht, die in die Skype-Download-Seite öffnet. Auf Facebook Messenger zeigt es nichts.Hinzufügen von Schaltflächen zu Bot Framework-Anwendung

Irgendwelche Ratschläge? Vielen Dank!

+0

Verwenden Sie Formflow oder Dialoge? – blueprintChris

Antwort

0

Ja, Sie können erreichen, eine benutzerdefinierte Schaltfläche hinzuzufügen, die auf jedem Kanal von Bot-Framework funktioniert.

Es gibt zwei Ansätze, um das zu erreichen: 1) Verwenden Sie Karten-Funktion von Bot, um Schaltflächen zu erhalten. (Schnell und einfach) 2) Verwenden Sie direkten Line Channel und fügen Sie Ihre benutzerdefinierte Schaltfläche hinzu. (Complex)

Lets mit Ansatz 1

Sie müssen beginnen, eine Heldenkarte und rufen Sie es in Ihrem Dialog erstellen. Die Heldenkarte enthält deine Textantwort von der Bot- und Thumbnail-Bild-URL. (Sie können das Vorschaubild entfernen, wenn dies nicht erforderlich ist). Unten ist der laufende Code für Ihre Hilfe.

public async Task StartAsync(IDialogContext context) 
     { 
      context.Wait(ImgCardResponse); 
     } 

     private async Task ImgCardResponse(IDialogContext context, IAwaitable<IMessageActivity> argument) 
     { 
      var message = await argument; 

      //responseMsgOnly is used to pass bot reply message 
      //responseImage is used to pass thumbnail image 
      var attachment = BotButtonCard(responseMsgOnly, responseImage); 
      cardMsg.Attachments.Add(attachment); 
      await context.PostAsync(cardMsg); 



     } 
     private static Attachment BotButtonCard(string responseMsgOnly, string responseImage) 
     { 
      var heroCard = new HeroCard 
      { 
       Title = "Here we go with the response", 
       Subtitle = "Subtitle goes here", 
       Text = responseMsgOnly, 
       Images = new List<CardImage> 
       { 
        new CardImage(responseImage) 
       } 
       Buttons = new List<CardAction> 
       { 
        new CardAction(ActionTypes.OpenUrl, "Your Button Label", value: "https://www.google.com") 
       } 
      }; 

      return heroCard.ToAttachment(); 
     } 
     private async Task ResumeAfterAction(IDialogContext context, IAwaitable<object> result) 
     { 
      context.Done(new object()); 
     } 

Lets mit Ansatz 2

Die API Direct Line starten ist ein einfaches REST-API für direkt an einen einzelnen Bot verbindet. Diese API richtet sich an Entwickler, die ihre eigenen Client-Anwendungen, Web-Chat-Steuerelemente oder mobile Apps schreiben, die mit ihrem Bot kommunizieren. Das Direct Line v3.0 Nuget-Paket vereinfacht den Zugriff auf die zugrunde liegende REST-API.

Sie benötigen eine HTML-Seite und setzen Sie den Code unten

in Kopfteil

<link href="../botchat.css" rel="stylesheet"/> 
    <script src="../js/botchat.js"></script> 

in Körperteil zu schaffen

<div id="bot"></div> 
<script> 

    var FirstName; 
    var emailaddress; 
    var Environment; 
    try{ 

     FirstName = _spPageContextInfo.userDisplayName; 
     emailaddress = "[email protected]"; 
     Environment= _spPageContextInfo.webAbsoluteUrl ; 
    } 
    catch(ex) 
    { 
     spCOntext = 'You'; 
     Environment = 'Local System'; 

    } 

    BotChat.App({ 

     directLine: { secret: 'Your direct line secret' }, 

     user: { id: FirstName,Name: Environment}, 
     name: spCOntext, 
     value: FirstName, 
     From: '', 
     bot: { id: 'Bot ID' }, 
     resize: 'detect' 
    }, document.getElementById("bot")); 

</script> 

mich bei wissen lassen Sie Sie brauchen Hilfe

Verwandte Themen