Если вы посмотрите на что-либо, что ваш бот получает от Teams, например, сообщение от пользователя или событие teamMemberRemoved и т. Д. c., Существуют различные «типы» идентификаторов, которые могут быть задействованы. В качестве примера приведем пример события talkUpdate:
{
"membersAdded": [
{
"id": "28:[bot app id]"
}
],
"type": "conversationUpdate",
"timestamp": "2019-10-31T12:20:31.483Z",
"id": "f:[event id]",
"channelId": "msteams",
"serviceUrl": "https://smba.trafficmanager.net/emea/",
"from": {
"id": "29:[conversation id]",
"aadObjectId": "[user AAD Id]"
},
"conversation": {
"isGroup": true,
"conversationType": "channel",
"tenantId": "[Tenant Id]",
"id": "19:[group or channel id]@thread.skype"
},
"recipient": {
"id": "28:[bot app id]",
"name": "[bot name]"
},
"channelData": {
"team": {
"id": "19:[some id]@thread.skype",
"name": "Indoor Soccer",
"aadGroupId": "[AAD Group Id]"
},
"eventType": "teamMemberAdded",
"tenant": {
"id": "[Tenant Id again]"
}
}
}
В приведенном выше примере вы можете увидеть целую группу «Id», например, Tenant Id, Conversation Id, User's Azure AD. Id, et c. Для некоторых из них Teams имеет специальный формат префикса c, например, «29:» - это то, как запускается обычный пользовательский идентификатор «Teams», «19» - это идентификатор канала или группы и т. Д. c. Боты начинаются с «28:», а затем у них есть уникальный идентификатор Guid Id, но в случае бота это Guid Id - это тот же идентификатор, что и идентификатор приложения в Azure регистрации бота, поэтому это предсказуемо. Это означает, что, например, если вы отправляете упреждающее сообщение и вам нужно установить идентификатор пользователя «От», вы можете составить его с помощью «28:» + идентификатора вашего приложения, который, вероятно, у вас есть в файле конфигурации, чтобы чтобы иметь дело с шифрованием / расшифровкой сообщений вашего бота.