Приложение Microsoft Teams с боковой загрузкой - запуск нескольких событий разговор «Обновление» - PullRequest
1 голос
/ 09 февраля 2020

Возможно, я что-то недопонимаю, но я работаю над некоторыми сообщениями приветствия c, и они запускаются дважды. Я уже делаю foreach, чтобы проверить, кто добавляется в диалог, потому что я знаю, что даже в этом 1-1 я получу уведомление о присоединении пользователя и бота, примерно так:

    foreach (var member in membersAdded)
    {
        if (member.Id == turnContext.Activity.Recipient.Id) 
        {
           await SendWelcomeMessage(turnContext);
           break;
        }
   }

Проблема, однако, заключается в том, что я получаю два полностью дублированных события разговор ". Это чат 1-1, и я получаю следующее (отредактировано) оба раза :

    "membersAdded": [
        {
            "id": "29:...",
            "aadObjectId": "[guid]"
        },
        {
            "id": "28:..."
        }
    ],
    "type": "conversationUpdate",
    "timestamp": "...",
    "id": "f:guid",
...

единственное, что меняет, это идентификатор сообщения, но кроме этого Я получаю обе записи в membersAdded оба раза. Я знаю, что должен получать уведомления о добавлении обоих участников к этому 1-1, но, конечно, я должен получить либо две записи в membersAdded или два события "dialogUpdate"? Прямо сейчас я получаю, в основном, 2x2.

Является ли единственным решением для отслеживания состояния разговора, чтобы определить, «приветствовал» ли я этого пользователя раньше в этом же разговоре 1-1? Даже если я попробую это сделать, я боюсь, что в результате у меня появятся две записи о состоянии (например, две дубликаты в базе данных) из-за проблем с синхронизацией потоков (можно создать запись базы данных для диалога, и нет никакого способа чтобы выделить диалоги обновлений прямо сейчас).

Что мне не хватает?

Возможно, уместно, что это пользовательское приложение с боковой загрузкой? Кроме того, это происходит только в первый раз, когда я устанавливаю приложение - если я удаляю и переустанавливаю, я просто получаю 1 уведомление.

...