Как добавить упоминание в Команды вместе с адаптивной картой с помощью Bot Framework - PullRequest
0 голосов
/ 31 января 2020

Я пытаюсь отправить мероприятие с адаптивным вложением карты и добавить упоминание пользователю, создавшему публикацию. Из чтения онлайн я обнаружил, что в настоящее время вы не можете включать упоминания в адаптивные карты. Есть ли способ упомянуть кого-то при отправке действия, например, в другом приложении? Я попытался установить активность. Текст = упоминание, это работает, однако создает два сообщения: первое с упоминанием, а затем другое сообщение с адаптивной картой в виде отдельного сообщения. Я чувствую, что должен быть способ сделать это, иначе, если вы создали сообщение, и кто-то ответил вам, вы никогда не узнаете автоматически при ответе. Также обратите внимание, что я не использую Flow. Код Сообщение команд

Ответы [ 2 ]

3 голосов
/ 04 февраля 2020

В настоящее время Adaptive Card @mention находится в предварительном просмотре разработчика, но вы можете достичь @Mention в адаптивной карте с версией Adaptive card 1.2.

Вы можете @Mention пользователя в адаптивной карте, используя следующую команду: JSON

{

  "type": "AdaptiveCard",

  "body": [

    {

      "type": "TextBlock",

      "size": "Medium",

      "weight": "Bolder",

      "text": "Hi <at>Mention_Name</at> This is new feature in Adaptive Card version 1.2 Please test..."

    }

  ],

  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",

  "version": "1.0",

  "channelId": {

    "entities": [

      {

        "type": "mention",

        "text": "<at>Name</at>",

        "mentioned": {

          "id": "29:124124124124",

          "name": "Mungo"

        }

      }

    ]

  }

} 

Необходимо указать идентификатор канала и упомянутый идентификатор, который можно получить из самого объекта действия

Fetch Channel Id and Mentioned Id from Activity Object

1 голос
/ 31 января 2020

Задумывались ли вы (а) об отправке адаптивной карты и (б) об отправке сообщения "Ответ" на оригинальную отправленную вами адаптивную карту? Я не делал этого раньше, но я предполагаю, что идентификатор, возвращаемый из turnContext.SendActivityAsync (в экземпляре ResourceResponse), - это идентификатор, который можно использовать для «ответа» на только что созданное сообщение.

Обновление: у меня это работает. Это очень грубый код, но, надеюсь, достаточно, чтобы вы могли выяснить / скорректировать свой сценарий:

 var result = connector.Conversations.SendToConversationAsync([your conversation id], activity).Result;

// I'm re-using the same activity just as a test, you can do whatever (e.g. create a new one)
activity.Text = "Msg 2";
var conversationReference = activity.GetReplyConversationReference(result);
conversationReference.Conversation.Id = conversationReference.Conversation.Id + ";messageid=" + result.Id;
activity.ApplyConversationReference(conversationReference);

connector.Conversations.SendToConversationAsync(conversationReference.Conversation.Id, activity);

Итак, обратите внимание, действительно важно, вам нужно изменить свой идентификатор разговора на добавьте "; messageid =" в конец и ADD ссылку на сообщение, которое вы только что отправили.

Вот скриншот: Msg Reply

Надеюсь, что это помогает, и спасибо за это - дал мне возможность узнать что-то полезное!

...