Бот Microsoft Teams - не удалось разобрать идентификатор клиента

Я работаю над ботом для MS Teams, и у меня возникла проблема. При попытке начать разговор от бота я получаю такую ​​ошибку:

Microsoft.Rest.HttpOperationException: не удалось проанализировать идентификатор клиента

Мне не удалось найти нигде в документации, где упоминается требуемый идентификатор клиента, и я никогда не устанавливал его в приложении. Как я могу это указать, или причина в другом?

Ниже приведен код, который я использую, который возвращает ошибку (строки запутаны).

private ConversationResourceResponse GetConversation(IActivity activity)
    {
        var connector = new ConnectorClient(new Uri(activity.ServiceUrl));

        var userAccount = new ChannelAccount("[email protected]");
        var botAccount = new ChannelAccount("@botHandle", "botName");

        var conversationId = connector.Conversations.CreateDirectConversation(botAccount, userAccount);
        return conversationId;
    }

Спасибо!


person David    schedule 04.01.2018    source источник


Ответы (1)


В MS Teams есть особое поведение, когда вы хотите создать диалог, поэтому вам нужно использовать определенный метод, предоставляемый пакетом MS Teams NuGet:

// Create or get existing chat conversation with user
var response = client.Conversations.CreateOrGetDirectConversation(activity.Recipient, activity.From, activity.GetTenantId());

Вы можете видеть, что у метода есть параметр tenantId in.

Пакет NuGet называется Microsoft.Bot.Connector.Teams и доступен здесь.

Дополнительные сведения о документации MS Teams (на стороне платформы ботов она не указана): https://docs.microsoft.com/en-us/microsoftteams/platform/scenarios/bots-personal-conversations#starting-a-11-talk

person Nicolas R    schedule 05.01.2018
comment
Большое спасибо! У меня был пакет Microsoft.Bot.Connector, но я не знал о Microsoft.Bot.Connector.Teams. Решил эту ошибку! - person David; 05.01.2018
comment
Просто примечание: упомянутый пакет устарел, и вам следует использовать пакет Microsoft.Bot.Builder с методом CreateConversationAsync. - person Lauri Peltonen; 11.08.2020