Как получить запрос от встроенного веб-просмотра в ботфреймворке и закрыть окно расширений обмена сообщениями? - PullRequest
2 голосов
/ 08 мая 2020

У меня есть бот, который поддерживает функцию расширений обмена сообщениями. Я последовал примеру здесь . Но вместо представления карты я использовал встроенное веб-представление, чтобы показать свой пользовательский интерфейс (приложение для реагирования, размещенное в S3)

Это код, который я использовал для открытия предварительного просмотра расширения сообщения:

  handleTeamsMessagingExtensionFetchTask(context, action) {
    const url = process.env.POPUP_VIEW_URL;
    return {
      task: {
        type: 'continue',
        value: {
          url: url,
          fallbackUrl: url,
          width: 680,
          height: 400,
          title: 'Feedback & praise',
        },
      },
    };
  }

Всплывающее окно будет иметь следующий интерфейс: Iframe content

Я попытался найти пример / документацию о том, как бот может получить запрос из пользовательского интерфейса, когда пользователь щелкает Кнопка "Отправить запрос", но пока не могу найти ее. Я смотрел на этот этот , но он использует пример адаптивной карты.

Интересно, есть ли пример из документации для встроенного веб-просмотра? Я также думал, что просто вызовет API, когда пользователь нажимает кнопку, но все еще не понимаю, как закрыть окно предварительного просмотра после успешного возврата вызова API.

Ответы [ 2 ]

0 голосов
/ 11 мая 2020

Как @ Raje sh ответ выше. Это в основном то, что я сделал

  1. Добавить @microsoft/teams-js в мое приложение для реагирования
  2. Из моего компонента, содержащего кнопку. Поскольку мне не нужно передавать какую-либо информацию обратно ботам / командам, я вызываю функцию только без аргументов.
import * as microsoftTeams from "@microsoft/teams-js";

...

export const myComponent = () => {
  const submitRequest = () => {
    // make API request
    if (success) {
      microsoftTeams.initialize(); // This is a must
      microsoftTeams.tasks.submitTask();
    }
  }


  return (
    <>
     ...
     <button onClick={submitRequest} type="button">Submit request</button>
    </>
  );
}
0 голосов
/ 09 мая 2020

Вам необходимо использовать submitTask при нажатии кнопки

microsoftTeams.tasks.submitTask(JSON);
...