Я использую Visual Studio для создания бота Skype на основе их SDK Bot Builder и эмулятора Skype. (Я использую эту страницу ) Я успешно заставил бота подключаться и получать обычные текстовые сообщения, и он правильно отвечает:
Вы отправили [сообщение] длиной [длина] символов
Тем не менее, я попытался добавить событие для запуска при добавлении пользователя, и он должен просто отправить «Добро пожаловать».
public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
{
if (activity.Type == ActivityTypes.Message)
{
ConnectorClient connector = new ConnectorClient(new System.Uri(activity.ServiceUrl));
int length = (activity.Text ?? string.Empty).Length;
Activity reply = activity.CreateReply($"You sent {activity.Text} which was {length} characters");
await Conversation.SendAsync(activity, () => new Dialogs.RootDialog());
}
else
{
HandleSystemMessage(activity);
}
var response = Request.CreateResponse(HttpStatusCode.OK);
return response;
}
private Activity HandleSystemMessage(Activity message)
{
//The other if statements are the rest of the activity types
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
Activity reply = message.CreateReply("Welcome");
}
Это код, который у меня есть в настоящее время. Я попытался добавить те же строки Connector
и await
в оператор else
в строке 17, но это просто заставило бота ответить
Вы отправили 0 символов
Если какая-либо другая информация необходима, чтобы исправить это, я буду рад предоставить ее.
Любая помощь приветствуется!
РЕДАКТИРОВАТЬ: код, который у меня сейчас есть, ничего не отвечает. Он видит событие ConversationUpdate и ничего с ним не делает.
message.CreateReply("Welcome");
просто создает сообщение, а не отправляет его. - person caesay   schedule 18.05.2017