Как включить бот для поиска в групповом чате Skype, в который он был добавлен ранее?

Я создаю бота с помощью Microsoft Bot Framework, который должен, при получении уведомления от CI-сервера, уведомлять о событиях сборки участников определенной группы чата в Skype.

Я не совсем понимаю, когда я добавил бота Skype в чат, он получил активность, которая, вероятно, позволила бы мне сохранить некоторый Id на этом этапе. Но так как мне нужно, чтобы бот был активным и публиковал сообщения, основанные на внешних раздражителях, мне нужно было бы постоянно знать ссылку на этот групповой чат, в том числе после повторного развертывания. Но после передислокации у меня нет ссылки на разговор.

Теоретически, какой бит данных, учитывая, что я сохраняю его во время добавления, позволил бы мне активно отправлять сообщения в любой данный момент времени?

1 ответ

Если это нормально, что все участники "присоединяются" к беседе, сначала написав боту, и если ваш бот принимает сообщения аналогичным способом Post

public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
{
    string rawActivity = JsonConvert.SerializeObject(activity);
    Save(rawActivity);
}

Затем вы можете в любое время отправлять сообщения на этот разговор от вашего бота, используя следующий код. Вы можете перезапустить или даже заново развернуть своего бота. Я проверил около одной недели как максимальное время между последовательными сообщениями.

public void MethodInvokedByExternalEvent(string externalMessage)
{
    var activity = JsonConvert.DeserializeObject<Activity>(GetStoredActivity());
    var replyActivity = activity.CreateReply(externalMessage);

    ResourceResponse reply = null;
    using (var client = new ConnectorClient(new Uri(activity.ServiceUrl)))
    {
        reply = client.Conversations.ReplyToActivity(replyActivity);
    }
}
Другие вопросы по тегам