у меня есть .docx
файл в Один диск. Если я нажимаю на него, он открывается Слово онлайн. Затем есть кнопка, которая говорит Edit in Word
который открывает текущий файл на рабочем столе слово (Вы должны предоставить учетные данные, конечно).
С использованием OneDrive API, Я могу открыть файл прямо в Слово онлайн из моего приложения PHP (так как он предоставляет URL-адрес файла), но теперь я пытаюсь открыть его в Слово Оффлайн (а затем Word запросит учетные данные для пользователя).
TL; DR: я пытаюсь воспроизвести Edit in Word
поведение кнопки. Как я могу это сделать?
Чтобы открыть файл на рабочем столе Word из веб-приложения, вы должны использовать ms-word
протокол:
https://msdn.microsoft.com/en-us/library/office/dn906146.aspx
Это выглядит как: ms-word:ofe|u|<url to file>
,
Вы должны иметь возможность инициировать открытие файла, установив выше URL как href
атрибут a
тег или по телефону window.open()
Функция JS.
Но вам нужен прямой URL (а не веб-URL или сгенерированная ссылка для доступа), и, насколько мне известно, API не предоставляет такой, поэтому вам придется создавать его самостоятельно.
Прямая ссылка для OneDrive (персональная) выглядит так:
https://d.docs.live.net/{drive-id}/{file-path}
,
Вы можете получить идентификатор диска, вызвав API (я буду использовать Microsoft Graph, потому что я знаком только с этим).
Вызов https://graph.microsoft.com/v1.0/me/drive/
и в ответ вы получите JSON, который включает в себя id
свойство, и это ваш необходимый идентификатор диска.
Если вы не хотите использовать Graph API, но OneDrive API, я думаю, единственная часть, которая изменяется graph.microsoft.com
и это становится api.onedrive.com
(но я не уверен, посмотрите здесь для получения дополнительной информации — https://dev.onedrive.com/getting-started.htm).
Далее вам нужно указать путь к файлу в вашем OneDrive. Если файл находится в корневом каталоге, прямой URL-адрес файла может выглядеть следующим образом:
https://d.docs.live.net/xxxxxxxxxx/Document1.docx
,
Это в основном все, теперь вы должны иметь возможность открыть файл в настольном приложении Word, используя ms-word:ofe|u|https://d.docs.live.net/xxxxxxxxxx/Document1.docx
,
Других решений пока нет …