C# 什么是;28“;前缀在MicrosoftBot框架中表示';s应用程序Id(团队)
我正在使用Microsoft Bot framework,当我从团队中删除Bot时,我将收到C# 什么是;28“;前缀在MicrosoftBot框架中表示';s应用程序Id(团队),c#,.net,botframework,microsoft-teams,C#,.net,Botframework,Microsoft Teams,我正在使用Microsoft Bot framework,当我从团队中删除Bot时,我将收到teamMemberRemoved事件,并且当我尝试从活动中获取已删除的用户时。MembersRemoved有一个ID为28:的用户 我也在GitHub上找到了一些解决方案,它是这样处理bot用户的: newchannelaccount(“28:+botCredentials.MicrosoftAppId) 因此,我想知道28代表什么?如果您查看一下您的机器人从团队收到的任何信息,例如来自用户的消息,或t
teamMemberRemoved
事件,并且当我尝试从活动中获取已删除的用户时。MembersRemoved
有一个ID为28:
的用户
我也在GitHub上找到了一些解决方案,它是这样处理bot用户的:newchannelaccount(“28:+botCredentials.MicrosoftAppId)代码>
因此,我想知道28
代表什么?如果您查看一下您的机器人从团队收到的任何信息,例如来自用户的消息,或teamMemberRemoved事件等,就会发现各种id“类型”在起作用。例如,下面是一个示例conversationUpdate事件:
{
"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”,如租户Id、对话Id、用户的Azure AD Id等。但其中一些团队有一个特定的前缀格式,如“29:”是普通用户的“团队”Id开始的方式,“19”是频道或组Id,等等。机器人以“28:”开始,然后它们有一个唯一的Guid Id,但在机器人的情况下,它的Guid Id与Azure机器人注册中的应用Id相同,因此是可预测的。这意味着,例如,如果您正在发送一条主动消息,并且需要设置“发件人”用户Id,您可以将其与“28:+您的应用程序Id”组合,您的应用程序Id很可能存在于配置文件中,以便处理您的机器人消息的加密/解密。如果您查看了机器人从团队收到的任何信息,例如来自用户的消息,或teamMemberRemoved事件等,有各种id“类型”在起作用。例如,下面是一个示例conversationUpdate事件:
{
"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”,如租户Id、对话Id、用户的Azure AD Id等。但其中一些团队有一个特定的前缀格式,如“29:”是普通用户的“团队”Id开始的方式,“19”是频道或组Id,等等。机器人以“28:”开始,然后它们有一个唯一的Guid Id,但在机器人的情况下,它的Guid Id与Azure机器人注册中的应用Id相同,因此是可预测的。这意味着,例如,如果您正在发送一条主动消息,并且需要设置“发件人”用户Id,您可以将其与“28:+您的应用程序Id”组合,您的应用程序Id可能存在于配置文件中,以便处理您的机器人消息的加密/解密