Как мне добавить свое пользовательское приложение на вкладку группа / чат в MS Teams?

#microsoft-teams

#microsoft-teams

Вопрос:

Я выполнил шаги, перечисленные в официальной документации MS Teams — https://docs.microsoft.com/en-us/microsoftteams/platform/tabs/how-to/add-tab

Я пытаюсь добавить свое веб-приложение CakePHP в teams / групповой чат. Я также попытался создать страницу конфигурации для связи между MS Teams и моим веб-приложением, но это не сработало.

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

 <script src="https://statics.teams.cdn.office.net/sdk/v1.8.0/js/MicrosoftTeams.min.js"></script>

<script>
    microsoftTeams.initialize();

    microsoftTeams.settings.registerOnSaveHandler((saveEvent) => {
        microsoftTeams.settings.setSettings({
            websiteUrl: "My website URL",
            contentUrl: "My content URL(which is same as my website URL)",
            entityId: "unique entity id that is mentioned in the app manifest file",
            suggestedDisplayName: "My tab name"
            });
        saveEvent.notifySuccess();
    });

    microsoftTeams.settings.setValidityState(true); 
</script>
 

Я также не получаю никаких ошибок, но после добавления моего веб-приложения во вкладку кнопка сохранения отключена, поэтому я не могу сохранить вкладку.

Обратитесь к этому изображению:

1

Ответ №1:

Вам нужно более внимательно прочитать документацию по этому вопросу — страница конфигурации должна сообщать Teams, когда она выполнит любую работу по настройке, которую она должна выполнить. Например, если вы добавляете вкладку SharePoint в Teams, это дает пользователю возможность выбрать, что из SharePoint они хотят показать, поэтому эта страница конфигурации необходима. Если вам не нужно предлагать пользователю какую-либо конфигурацию, вы можете просто поместить статическое сообщение на страницу, но вам все равно нужно уведомить Teams о том, что конфигурация «завершена», что вы делаете, вызывая библиотеку Teams JS, что-то вроде этого:

 microsoftTeams.initialize();

microsoftTeams.getContext(function (context) {
    microsoftTeams.settings.registerOnSaveHandler((saveEvent) => {
        microsoftTeams.settings.setSettings({
            websiteUrl: "https://yourWebsite.com",
            contentUrl: "https://yourWebsite.com/yourtab",
            entityId: "myTab",
            suggestedDisplayName: "MyNewTab"
            });
        saveEvent.notifySuccess();
    });

    microsoftTeams.settings.setValidityState(true);
});
 

Подробнее об этом можно прочитать здесь.

Комментарии:

1. Я попытался добавить эту конфигурацию, указанную здесь , так же, как вы упомянули в своем комментарии, но это не сработало. Я также попытался установить microsoftTeams.settings.setValidityState(true) сразу после microsoftTeams.initialize(); , но кнопка сохранения по-прежнему отключена.

2. о, хороший момент, я забыл упомянуть microsoftTeams.settings.setValidityState(true); — обновил ответ для будущих зрителей. Хотя это должно быть в значительной степени так — если это не работает, можете ли вы опубликовать обновленный пример кода. Требуется ли какое-либо взаимодействие на вашей странице конфигурации (например, пользователю необходимо установить какие-либо настройки)?

3. Нет, на данный момент пользователю не нужно устанавливать какие-либо настройки. Вот почему я использовал microsoftTeams.initialize(); , чтобы я мог напрямую включить кнопку сохранения. Дайте мне знать, если я делаю что-то не так. В противном случае я опубликую свой пример кода следующим.

4. Пожалуйста, опубликуйте образец

5. единственное, что я могу подумать, что это может изменить ситуацию, — это включить все. microsoftTeams.getContext Я обновил приведенный выше пример — пожалуйста, попробуйте и дайте мне знать, если это что-нибудь изменит.