WOPI nodejs, экспресс, реагировать на интеграцию - PullRequest
0 голосов
/ 29 августа 2018

Кто-нибудь может подсказать мне, как реализовать WOPI для стека MERN? Я изо всех сил в реализации этого.

За что я борюсь:

  • Подтверждение WOPI PROOF

  • Реализация заголовков запроса

1 Ответ

0 голосов
/ 23 ноября 2018

По сути, вам нужно несколько основных ингредиентов в соответствии с документацией по интеграции WOPI:

  1. Зарегистрируйтесь как Microsoft O365 Cloud Storage Partner с некоторым доменом разработки вы будете использовать для разработки и, возможно, позже для производство. Что-то вроде * .whatewercompany.com. Microsoft будет внесите в белый список этот домен, чтобы он давал вам возможность общаться с офис онлайн с этого домена.
  2. Сборка хоста WOPI. В вашем случае это будет приложение узла в бэкэнде который должен реализовать различные конечные точки REST согласно WOPI REST Справочник по API . Вам не нужны все из них, поэтому просто начните с: CheckFileInfo и GetFile, которые предоставят вам возможность просмотра только а затем перейти к более сложным, как Lock, Unlock, UnlockAndRelock, RefreshLock и PutFile, которые дадут вам редактирование возможностей. Я использовал пример реализации C # в качестве ссылки Офис-Online-Test-Tools-и-документации . Я просто переписал его в Java и Spring Framework, поэтому я бы порекомендовал взять Подобный подход, потому что код прост и действительно задокументировано с множеством заметок и комментариев.
  3. Ссылка на документы WOPI должна быть максимально возможной в начале. абстрактно и сложно, но когда вы начнете реализовывать конечные точки, это сделает больше и больше смысла, и через несколько дней работы это начнет обретать смысл.
  4. Создать страницу хоста 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.
  5. Итак, на последнем шаге я дал вам URL для просмотра файла .docx, но какой вам URL необходимо вызвать для просмотра .pptx или .xlsx или отредактировать их. Это приносит вам к концепции открытия WOPI, где вы узнаете, что этот URL-адрес отличается каждое действие, подобное: просмотр, редактирование, редактирование нового и расширение документа. В целом вы нужно вызвать URL-адреса обнаружения WOPI разобрать ответ xml и динамически переключаться с одного URL на другой в зависимости от того, хочет ли пользователь чтобы открыть Word или PowerPoint или если он хочет открыть его в поле зрения или редактировать. Рекомендуется кэшировать его и обновлять каждые 12 часов.
  6. Если вы хотите повысить безопасность, вам нужно убедиться, что запросы на самом деле происходит из офиса онлайн и что они подписаны правильно. Это одна из тех вещей, которые я сделал в последний раз, чтобы сделать это на 100% совместим с проверочными тестами Microsoft, но ваш просмотр и редактирование будет работать без него. Когда вы попадете сюда, обратите внимание, что в конце xml с шага 4 у вас есть проверочный ключ, который вам понадобится для этой проверки. Вот несколько примеров на разных языках C #, Java, Python Проверка того, что запросы исходят из Office Online с использованием проверочных ключей и не должно быть большой задачей, чтобы сделать то же самое в nodejs.
  7. Используйте интерактивное приложение 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 и шагами, которые я здесь изложил, вы можете идти.

...