Можно создать файл URL-адреса в веб-интерфейсе OneDrive, но НЕ правильно через Graph API

Я могу легко создать URL-файл через веб-интерфейс O365 OneDrive. Щелкните правой кнопкой мыши > Создать > Ссылка. Введите URL-адрес и сохраните. Новый элемент появится в пользовательском интерфейсе, и при нажатии на него вы перейдете прямо к новому URL-адресу, скажем, www.google.com.

Я пытаюсь продублировать это с помощью Graph API.

GET /me/drive/items/{folderId}/children
with: 
{ name:'www.google.com.url',
  file:{}
}

Он создает то, что выглядит как ссылка в пользовательском интерфейсе OneDrive, но при нажатии вы не перейдете к URL-адресу, а попытаетесь загрузить файл. Я пытался создать его с суффиксом .url и без него. API выглядит довольно ограниченным, и вариантов для прохождения не так много. Я также пробовал бета-API, та же проблема.


person Bryan    schedule 13.06.2017    source источник


Ответы (1)


Ссылки на самом деле представляют собой файл со специальным синтаксисом, похожим на INI-файл. Из приведенного здесь примера видно, что вы создаете пустой (0 байт) файл с именем "www.google.com.url". Поскольку пустой файл не соответствует формату, ожидаемому для файла .URL, OneDrive не знает, что с ним делать, и просто загружает файл.

Чтобы создать ссылку программно, вам нужно будет сделать такой запрос:

PUT https://graph.microsoft.com/v1.0/me/drive/root/children/ShortcutToBing.url/content
Content-Type: text/plain

[InternetShortcut]
URL=https://www.bing.com

Это создаст файл с именем ShortcutToBing.url и заполнит содержимое файла текстом под запросом, который является содержимым файла .URL, указывающим на www.bing.com.

person Ryan Gregg    schedule 13.06.2017
comment
Эй, спасибо за ответ, это сработало! Мне очень нравится Graph API, и он хорошо работает, но было бы неплохо, если бы подобные мелочи были где-то задокументированы. Может они и есть, но их не так просто найти. В любом случае, еще раз спасибо!! - person Bryan; 13.06.2017
comment
В этом случае в API нет особой концепции ссылок, как в SharePoint. Формат файлов .URL был определен давно, и SharePoint только что добавил некоторые особенности их работы. Поскольку формат файла хорошо определен, вы можете загрузить файл, соответствующий формату (что и делает предоставленный мной API-код). Кажется интересным добавить более богатую поддержку концепции ссылок, чтобы сделать это более непосредственным. - person Ryan Gregg; 13.06.2017