2016-05-22 24 views
5

Pracuję z łącznikiem programu Bot w odpowiedzi na wiadomość. Używam incomingMessage.CreateReplyMessage() to działało, ale i nowy ConnectorClient(), aby odpowiedzieć, następnie 500 Wewnętrzny błąd serwera. Non-boty nie mogą rozmawiać non-botówWyślij komunikat o błędzie 500 w produkcie Microsoft BotConnectorBot

public async Task<Message> Post([FromBody]Message incomingMessage) 
    { 
     var connector = new ConnectorClient(); 

     connector.Messages.SendMessage(incomingMessage.CreateReplyMessage("ねぇ")); 
     connector.Messages.SendMessage(incomingMessage.CreateReplyMessage("お返事ちょうだい?")); 
     connector.Messages.SendMessage(incomingMessage.CreateReplyMessage("なんでお返事くれないの?")); 
     connector.Messages.SendMessage(incomingMessage.CreateReplyMessage("どうして?")); 
     connector.Messages.SendMessage(incomingMessage.CreateReplyMessage("私のこと捨てるの?")); 
     connector.Messages.SendMessage(incomingMessage.CreateReplyMessage("ねぇ")); 
     connector.Messages.SendMessage(incomingMessage.CreateReplyMessage("なんで?")); 
     connector.Messages.SendMessage(incomingMessage.CreateReplyMessage("嘘つき")); 
     connector.Messages.SendMessage(incomingMessage.CreateReplyMessage("なんでこんなひどいことするの?")); 
     connector.Messages.SendMessage(incomingMessage.CreateReplyMessage("なんで?")); 
     connector.Messages.SendMessage(incomingMessage.CreateReplyMessage("なんで?なんで?なんで?なんで?なんで?なんで?なんで?なんで?なんで?なんで?なんで?なんで?なんで?なんで?なんで?なんで?なんで?なんで?")); 

     return incomingMessage.CreateReplyMessage("今あなたの家の前にいるの"); 
    } 

Odpowiedz

2

miałem ten sam problem, ale https://stackoverflow.com/a/37334528/5951301 pomógł mi go rozwiązać:

using (var scope = DialogModule.BeginLifetimeScope(Conversation.Container, message)) 
{ 
    var client = scope.Resolve<IConnectorClient>(); 
    client.Messages.SendMessage(message); 
} 
1

miał ten sam problem, w moim przypadku było ponieważ używałem emulatora ramek botów do wywoływania logiki botów (metoda Post). Jedynym sposobem, w jaki uzyskałem bezpośrednie połączenie poprzez działanie ConnectorClient, było wykonanie prawdziwego testu od końca do końca za pośrednictwem skonfigurowanego kanału (takiego jak Skype).

0

Spróbuj tego:

var connector = new ConnectorClient(new Uri("http://localhost:9000"), new ConnectorClientCredentials()); 
connector.Messages.SendMessage(message.CreateReplyMessage("Simple Text")); 
+0

Zedytuj więcej informacji. Tylko kod i odpowiedź "spróbuj tego" są odradzane, ponieważ nie zawierają treści do wyszukiwania i nie wyjaśniają, dlaczego ktoś powinien "spróbować tego". – abarisone