2016-06-11 42 views
5

Ho tentato di avviare il mio bot per avviare una conversazione con l'utente ma non so da dove nel codice dovrei inviare il messaggio. La documentazione per l'avvio di una convo è qui, ma non è super utile: http://docs.botframework.com/connector/new-conversations/#navtitle. Ho anche provato a rispondere in HandleSystemMessages (che funziona con l'emulatore se cambio il tipo di messaggio) ma ancora non invierà il primo messaggio.Avvio di una conversazione con Microsoft Bot Builder e microsoft bot framework

Utilizzo Microsoft Bot Connector e C#.

// IDK come fare l'evidenziazione della sintassi in StackOverflow // Questo è il mio codice dal MessageController Classe

public async Task<Message> Post([FromBody]Message message) 
    { 
     if (message.Type == "Message") 
     { 
      return message.CreateReplyMessage($"You said:{message.Text}"); 
     } 
     else 
     { 
      return HandleSystemMessage(message); 
     } 
    } 
+0

Sei riuscito a trovare una soluzione a questo? Sto anche lottando con questo stesso identico problema. Non riesco a capirlo. La documentazione per gli sviluppatori è inutile. Molto inutile. – blueprintChris

risposta

2

ho passato un sacco di tempo alla ricerca di questo problema. Di conseguenza, sono riuscito a iniziare a inviare un messaggio per conto del bot. Il mio esempio invia un messaggio a una conversazione di gruppo. Il codice sotto - è bozza ma funziona:

class Program 
{ 
    static void Main(string[] args) 
    { 
     var connector = new ConnectorClient(new Uri("https://skype.botframework.com")); 
     var conversationId = "19:[email protected]"; 
     var conversation = new ConversationAccount(true, conversationId); 
     var botAccount = new ChannelAccount("28:74a05skypeBotChannelAccountId", "your bot name"); 

     IMessageActivity message = Activity.CreateMessageActivity(); 
     message.From = botAccount; 
     message.Conversation = conversation; 
     message.ChannelId = "skype"; 
     message.Text = "some text"; 
     message.Locale = "en-En"; 
     connector.Conversations.SendToConversation((Activity)message); 
    } 
} 
+0

Ho usato questo documento: https://docs.botframework.com/en-us/csharp/builder/sdkreference/routing.html#conversation –

+0

Potete indicarci dove implementare questo codice? Come possiamo farlo se non stiamo usando Skype? Hai collegato il ragazzo alla stessa pagina che ha detto di aver trovato inutile. Puoi forse elaborare la tua risposta per favore? Presumo che non l'abbia segnato correttamente, perché probabilmente non è mai riuscito a capirlo. – blueprintChris

+0

Ho smesso di lavorare a questo progetto. Avevo il compito di inizializzare la conversazione in direzione dal mio Skype Bot a qualsiasi contatto Skype conosciuto. Il codice sopra ha aiutato a risolvere il mio compito. Cosa significa "se non stiamo usando Skype"? È possibile utilizzare qualsiasi canale supportato da botframework, ad esempio Facebook, e-mail, spazio libero ecc. –