2017-04-21 63 views
2

我只是試圖發送一個歡迎消息給用戶,當機器人添加。我寫了以下代碼,但我收到了「exceptionMessage」:「'ReplyToId'不能爲空。」在bot JSON結果中使用「exceptionMessage」:「'ReplyToId'不能爲空。」

else if (message.Type == ActivityTypes.ConversationUpdate) 
       { 
        // Handle conversation state changes, like members being added and removed 
        // Use Activity.MembersAdded and Activity.MembersRemoved and Activity.Action for info 
        // Not available in all channels 
        IConversationUpdateActivity conversationupdate = message; 
        using (var scope = DialogModule.BeginLifetimeScope(Conversation.Container, message)) 
        { 
         var client = scope.Resolve<IConnectorClient>(); 
         if (conversationupdate.MembersAdded.Any()) 
         { 
          var reply = message.CreateReply(); 
          foreach (var newMember in conversationupdate.MembersAdded) 
          { 
           if (newMember.Id != message.Recipient.Id) 
           { 
            reply.Text = $"Welcome {newMember.Name}! "; 
           } 
           else 
           { 
            reply.Text = $"Welcome {message.From.Name}"; 

           } 
           await client.Conversations.ReplyToActivityAsync(message); 
          } 
         } 
        } 
       } 

回答

2

看來你沒有正確地創建答覆。您正在使用傳入消息,而不是從中創建回覆。

這裏是代碼的工作,你應該強麥,以適應您的方案:

else if (message.Type == ActivityTypes.ConversationUpdate) 
{ 
    if (message.MembersAdded.Any(o => o.Id == message.Recipient.Id)) 
    { 
      var reply = message.CreateReply("Welcome!"); 

      ConnectorClient connector = new ConnectorClient(new Uri(message.ServiceUrl)); 

      await connector.Conversations.ReplyToActivityAsync(reply); 
     } 
}