У нас есть надстройка для Outlook (O365), которая работает в Календаре.
Мы использовали
office.context.mailbox.ewsurl
для определения серверной части учетной записи o365 в коде js нашего офиса. Он возвращает URL-адрес ews, и если мы находим O365, служебный текст в URL-адресе, мы считаем, что почтовый ящик учетной записи находится в облаке. Соответственно, мы запускаем связанный с API Graph код для таких учетных записей.
Однако, похоже, наш мыслительный процесс был неправильным, поскольку URL-адрес ews настроен для некоторых наших клиентов, и, следовательно, наше обнаружение идет не так.
Как определить бэкэнд как On-Prem или Cloud? Я знаю, что мы можем запустить API-интерфейсы Graph и обработать код ошибки, чтобы решить то же самое при сбое, однако здесь также есть много ложных срабатываний. Мы получаем довольно много сбоев подписки, и некоторые из них не из-за того, что бэкэнд был предварительно установлен.