WOPI nodejs, экспресс, реагировать на интеграцию
Кто-нибудь может подсказать мне, как реализовать WOPI для MERN Stack? Я изо всех сил в реализации этого.
За что я борюсь:
Подтверждение WOPI PROOF
Реализация заголовков запросов
1 ответ
По сути, вам нужно немного важных ингредиентов в соответствии с документацией по интеграции WOPI:
- Зарегистрируйтесь в качестве партнера по облачному хранилищу Microsoft O365 в какой-либо области разработки, которую вы будете использовать для разработки и, возможно, позднее для производства. Что-то вроде *.whatewercompany.com. Microsoft внесет этот домен в белый список, чтобы он мог общаться с офисом в сети с этого домена.
- Сборка хоста WOPI. В вашем случае это будет приложение узла в бэкэнде, которое должно реализовывать разные конечные точки REST в соответствии с WOPI REST API Reference. Вам не нужны все из них, поэтому начните с простого: CheckFileInfo и GetFile, которые дадут вам возможность только просмотра, а затем перейдите к более сложным, таким как Lock, Unlock, UnlockAndRelock, RefreshLock и PutFile, которые предоставят вам возможности редактирования. Я использовал пример реализации C# в качестве справочного Office-Online-Test-Tools-and-Documentation. Я просто переписал его в Java и Spring Framework, поэтому я бы рекомендовал использовать аналогичный подход, потому что код прост и действительно документирован с большим количеством заметок и комментариев.
- Ссылка на документы WOPI в максимально возможной степени вначале будет абстрактной и сложной, но когда вы начнете реализовывать конечные точки, это будет иметь все больше смысла, и через несколько дней работы это станет иметь смысл.
- Создайте страницу хоста WOPI. Обратитесь к разделу " Создание главной страницы". Это может быть просто другая конечная точка node js, которая возвращает страницу. Эта страница проста, и она в основном является хостом для офисных онлайн-действий 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/hosting/WopiTestFrame.aspx?WOPISrc=https://wopitest.whatewercompany.com/wopi/files/1&access_token=1234567890 (обратите внимание, что это должно вернуть некоторый файл с именем whatewer.wopitest, который будет использоваться при проверке). Желательно, чтобы вы вызывали страницу своего хоста, которая в свою очередь вызывает этот URL, чтобы проверить первую партию тестов с именем HostFrameIntegration. Я бы порекомендовал вам прочитать приложение WOPI Validation, чтобы получить лучшее представление.
Заметьте, я также пытался найти пример приложения там на git или где-то еще, вместо того, чтобы проходить процесс реализации всего с нуля, но не смог найти ничего, что выглядело хорошо, и в конце это не заняло много времени. В общем, если вы ссылаетесь на пример приложения на C# вместе с документацией WOPI и шагами, которые я здесь изложил, вы готовы к работе.