#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:
Вам нужно более внимательно прочитать документацию по этому вопросу — страница конфигурации должна сообщать 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
Я обновил приведенный выше пример — пожалуйста, попробуйте и дайте мне знать, если это что-нибудь изменит.