По сути, вам нужно несколько основных ингредиентов в соответствии с документацией по интеграции WOPI:
- Зарегистрируйтесь как Microsoft O365 Cloud Storage Partner с некоторым доменом разработки
вы будете использовать для разработки и, возможно, позже для
производство. Что-то вроде * .whatewercompany.com. Microsoft будет
внесите в белый список этот домен, чтобы он давал вам возможность общаться с
офис онлайн с этого домена.
- Сборка хоста WOPI. В вашем случае это будет приложение узла в бэкэнде
который должен реализовать различные конечные точки REST согласно WOPI REST
Справочник по API . Вам не нужны все из них, поэтому просто начните с:
CheckFileInfo и GetFile, которые предоставят вам возможность просмотра только
а затем перейти к более сложным, как Lock, Unlock,
UnlockAndRelock, RefreshLock и PutFile, которые дадут вам редактирование
возможностей. Я использовал пример реализации C # в качестве ссылки
Офис-Online-Test-Tools-и-документации . Я просто переписал его в Java и Spring Framework, поэтому я бы порекомендовал взять
Подобный подход, потому что код прост и действительно
задокументировано с множеством заметок и комментариев.
- Ссылка на документы WOPI должна быть максимально возможной в начале.
абстрактно и сложно, но когда вы начнете реализовывать конечные точки, это сделает больше
и больше смысла, и через несколько дней работы это начнет обретать смысл.
- Создать страницу хоста WOPI. См. Создание страницы хоста . Может быть
просто еще одна конечная точка nodejs, которая возвращает страницу. Эта страница
просто и это в основном хост для офисного онлайн действия iframe.
OFFICE_ONLINE_ACTION_URL в случае просмотра docx файла будет
https://word -view.officeapps-df.live.com / WV / wordviewerframe.aspx? WOPISrc = https://wopitest.whatewercompany.com/wopi/files/1&access_token=1234567890.
- Итак, на последнем шаге я дал вам URL для просмотра файла .docx, но какой вам URL
необходимо вызвать для просмотра .pptx или .xlsx или отредактировать их. Это приносит вам
к концепции открытия WOPI, где вы узнаете, что этот URL-адрес отличается
каждое действие, подобное: просмотр, редактирование, редактирование нового и расширение документа. В целом вы
нужно вызвать URL-адреса обнаружения WOPI разобрать ответ xml и
динамически переключаться с одного URL на другой в зависимости от того, хочет ли пользователь
чтобы открыть Word или PowerPoint или если он хочет открыть его в поле зрения или
редактировать. Рекомендуется кэшировать его и обновлять каждые 12 часов.
- Если вы хотите повысить безопасность, вам нужно убедиться, что запросы
на самом деле происходит из офиса онлайн и что они подписаны
правильно. Это одна из тех вещей, которые я сделал в последний раз, чтобы сделать это на 100%
совместим с проверочными тестами Microsoft, но ваш просмотр и редактирование
будет работать без него. Когда вы попадете сюда, обратите внимание, что в конце xml с шага 4 у вас есть проверочный ключ, который вам понадобится для этой проверки. Вот несколько примеров на разных языках C #, Java, Python Проверка того, что запросы исходят из Office Online с использованием проверочных ключей и не должно быть большой задачей, чтобы сделать то же самое в nodejs.
- Используйте интерактивное приложение WOPI для проверки вашей реализации WOPI
и с нетерпением ждем всех зеленых значков, которые вы видите там. Это кипит
до чего-то вроде
https://onenote.officeapps -df.live.com / хостинг / WopiTestFrame.aspx? WOPISrc = https://wopitest.whatewercompany.com/wopi/files/1&access_token=1234567890
(Обратите внимание, что это должно вернуть некоторый файл с именем whatewer.wopitest
это будет использоваться при проверке). Желательно, чтобы вы вызывали страницу своего хоста, которая в свою очередь вызывает этот URL, чтобы проверить первую партию тестов с именем HostFrameIntegration. Я бы порекомендовал вам прочитать WOPI
Валидация приложения , чтобы получить лучшее представление
Заметьте, я также пытался найти пример приложения там на git или где-то еще, вместо того, чтобы проходить процесс реализации всего с нуля, но не мог найти ничего, что выглядело хорошо, и в конце это не заняло так много времени , В общем, если вы ссылаетесь на пример приложения C # вместе с документацией WOPI и шагами, которые я здесь изложил, вы можете идти.