2016-06-11 88 views
5

我試圖讓我的機器人與用戶開始對話,但我不知道應從哪裏發送消息。啓動convo的文檔在這裏,但它不是很有用:http://docs.botframework.com/connector/new-conversations/#navtitle。我也嘗試在HandleSystemMessages中進行回覆(如果我更改消息類型,它將與模擬器一起工作),但它仍然不會發送第一條消息。開始與Microsoft bot構建器和微軟機器人框架的對話

我正在使用Microsoft Bot連接器和C#。

// IDK怎麼做語法高亮顯示在計算器 //這是從MessageController類

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

您是否設法找到解決方案?我也在努力解決這個完全相同的問題。無法弄清楚。開發者文檔是無用的。非常無益。 – blueprintChris

回答

2

我的代碼,我花了很多時間研究此問題。因此,我設法發起代表機器人發送消息。我的示例將消息發送給組對話。下面的代碼 - 是粗略的草案,但它的工作原理:

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

我使用了這個文檔:https://docs.botframework.com/en-us/csharp/builder/sdkreference/routing.html#conversation –

+0

你能告訴我們在哪裏實現這個代碼?如果我們不使用Skype,我們怎麼做?你已經把這個人鏈接到他說他覺得無益的頁面。你能否詳細說明你的答案?我認爲他沒有標明它是正確的,因爲他可能從來沒有設法弄清楚。 – blueprintChris

+0

我停止了這個項目的工作。我有任務來初始化從我的Skype機器人到任何已知的Skype聯繫人的對話。上面的代碼有助於解決我的任務。 「如果我們不使用Skype」是什麼意思?您可以使用botframework支持的任何通道,例如Facebook,電子郵件,閒置等。 –