Как указать точную версию используемого Office.js?

Мы запускаем надстройку Outlook, и похоже, что Microsoft обновила версию Office.js с 16.00 до 16.01: outlook:{ios:"16.00",mac:"16.00",web:"16.01",win32:"16.02"} (через https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js)

Одно из изменений выглядит как дополнительная проверка абстракции postMessage, гарантирующая, что домен (включая поддомен) дочернего / родительского домена совпадает.

Поскольку мы размещаем нашу надстройку и центральный сервер аутентификации в разных поддоменах, и в результате все наши потоки OAuth в Outlook в Интернете не работают.

outlook-web-16.01.js:18 Failed to execute 'postMessage' on 'DOMWindow': The target origin provided ('https://outlook.domain.com') does not match the recipient window's origin ('https://auth.domain.com')

Outlook на рабочем столе (как MacOS, так и Windows) не затронут.

Мы уже занесли домены в белый список в нашем файле манифеста:

<AppDomains>
  <AppDomain>https://outlook.domain.com</AppDomain>
  <AppDomain>https://outlook-staging.domain.com</AppDomain>
  <AppDomain>https://auth.domain.com</AppDomain>
</AppDomains>

Можно ли вручную указать версию Office.js, загружаемую на каждой платформе, чтобы мы могли обновляться в своем собственном темпе и не нарушать подобные изменения?


person djlumley    schedule 14.07.2017    source источник


Ответы (1)


Для этой конкретной ошибки вам необходимо добавить свои поддомены в раздел appdomain / appdomains в вашем манифесте. Видеть:

https://dev.office.com/reference/add-ins/manifest/appdomains https://dev.office.com/reference/add-ins/manifest/appdomain

Изменения основной версии, то есть 16.00 -> 16.01, как правило, не могут быть указаны и не должны быть откатаны до. Если хост (клиент OWA или Outlook) ожидает определенной версии (16.01), принудительное использование 16.00 приведет к неожиданному поведению (скорее всего, apis просто возвращает ошибки).

Если вы хотите быть более устойчивыми к изменениям, которые мы вносим в эти файлы (т.е. изменениям, которые мы вносим в 16.01), вы можете вытащить файлы из appsforoffice и самостоятельно разместить их. Но это не поддерживается / не рекомендуется. Это означает, что любые исправления ошибок или улучшения, которые мы внесли в эти файлы, будут упущены.

person Outlook Add-ins Team - MSFT    schedule 14.07.2017
comment
Мы указываем эти домены в файле манифеста и уже прошли процесс проверки. Мы рассматривали возможность самостоятельного хостинга, но из-за того, что Office.JS использует отдельные файлы JS для разных платформ, это кажется проблематичным. - person djlumley; 14.07.2017
comment
Также важно отметить, что эта конкретная ошибка возникала только в течение последних дней или двух, поэтому я связываю ее с изменением версии. - person djlumley; 14.07.2017
comment
Учитывая, что настольные версии кажутся незатронутыми, как мы можем зарегистрировать это как ошибку в ожидаемом поведении и найти своевременное исправление? - person djlumley; 14.07.2017
comment
Я думаю, что это может быть другая проблема, чем часть appdomains в манифесте. Вы получаете эту ошибку при использовании диалогового API? Если да, то в каких операционных системах и браузерах? - person Humberto Lezama; 14.07.2017
comment
Да, мы используем API диалога. В настоящее время это происходит в MacOS в Safari и Chrome. Еще не проверено в среде Windows, но скоро может протестировать. - person djlumley; 14.07.2017
comment
Работает в Windows 10 с Edge, по-прежнему не работает в MacOS Safari / Chrome - person djlumley; 14.07.2017
comment
У меня все еще есть эта проблема в MacOS Chrome. Было ли исправление? - person Jim Hall; 06.10.2017
comment
Привет, Джим, нет исправлений. Чтобы помочь нам в воспроизведении, не могли бы вы дать нам сообщение об ошибке, которое вы получаете с MacOS Chrome, и проверить правильность вашего списка AppDomains? Эта проблема возникла у вас недавно, и какой API вы используете для устранения ошибки? Какую сборку OWA вы используете? - person Outlook Add-ins Team - MSFT; 12.10.2017