Что означает префикс «28» в идентификаторе приложения Microsoft Bot Framework (команды) - PullRequest
1 голос
/ 26 мая 2020

Я работаю над фреймворком Microsoft Bot, и когда я удаляю бота из команды, я получаю событие teamMemberRemoved, и когда я пытаюсь удалить пользователей из activity.MembersRemoved, есть пользователь со следующим идентификатором - 28:<appId>.

Я также нашел некоторые решения на GitHub, которые имеют дело с пользователем-ботом, например:
new ChannelAccount("28:" + botCredentials.MicrosoftAppId);

Итак, я хотел бы знать, что означает 28?

1 Ответ

2 голосов
/ 26 мая 2020

Если вы посмотрите на что-либо, что ваш бот получает от 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:» + идентификатора вашего приложения, который, вероятно, у вас есть в файле конфигурации, чтобы чтобы иметь дело с шифрованием / расшифровкой сообщений вашего бота.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...