2016-06-11 9 views
5

Próbowałem, aby mój bot zaczął rozmowę z użytkownikiem, ale nie wiem, w którym kodzie powinienem wysłać wiadomość. Dokumentacja do uruchomienia convo jest tutaj, ale nie jest super pomocna: http://docs.botframework.com/connector/new-conversations/#navtitle. Próbowałem również odpowiadać w HandleSystemMessages (który działa z emulatorem, jeśli zmienię typ wiadomości), ale nadal nie będzie wysyłał pierwszej wiadomości.Rozpoczęcie rozmowy z programem Microsoft do budowania botów i strukturą botów Microsoft.

Używam Microsoft Bot Connector i C#.

// Idk jak zrobić podświetlanie składni w stackoverflow // To jest mój kod z MessageController klasy

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

Udało Ci się znaleźć rozwiązanie tego problemu? Ja także zmagam się z tym samym problemem. Nie mogę tego rozgryźć. Dokumentacja programisty jest bezużyteczna. Bardzo pomocne. – blueprintChris

Odpowiedz

2

Spędziłem dużo czasu bada ten problem. W rezultacie udało mi się zainicjować wysyłanie wiadomości w imieniu bota. Mój przykład wysyła wiadomość do rozmowy grupowej. Poniższy kod - jest wersją roboczą, ale działa:

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

Użyłem tego dokumentu: https://docs.botframework.com/en-us/csharp/builder/sdkreference/routing.html#conversation –

+0

Czy możesz nam pokazać, gdzie można wdrożyć ten kod? Jak możemy to zrobić, jeśli nie używamy Skype'a? Połączyłeś faceta z tą samą stroną, którą powiedział, że znalazł się niepomocny. Czy możesz wyjaśnić odpowiedź? Zakładam, że nie zaznaczył tego poprawnie, ponieważ prawdopodobnie nigdy nie udało mu się tego rozgryźć. – blueprintChris

+0

Zatrzymałem pracę nad tym projektem. Miałem za zadanie zainicjować konwersację w kierunku z mojego Skype Bot do dowolnego znanego kontaktu Skype. Powyższy kod pomógł mi rozwiązać moje zadanie. Co to znaczy "jeśli nie używamy Skype'a"? Możesz użyć dowolnego kanału obsługiwanego przez botframework, na przykład Facebook, e-mail, luki itp. –