OneDrive - использование Rest API для доступа к папке, указанной совместно используемой webURL - PullRequest
0 голосов
/ 12 сентября 2018

Я использую конечную точку https://graph.microsoft.com/v1.0 и получаю общую ссылку для папки, используя: /drive/special/approot:{SomePath}:/createLink.

Возвращает ссылку, которая выглядит примерно так: https://1drv.ms/u/s!...pZqIns

Другой пользователь позже получит доступ к общим данным с помощью браузера с этим URL.Нет проблем.Но они также хотят использовать мое приложение, которое использует API остальных.Как я могу преобразовать ссылку в FileID, чтобы они могли использовать мое приложение для доступа к папке и ее содержимому?

Если это важно ... это не для самой папки приложения.

1 Ответ

0 голосов
/ 12 сентября 2018

Согласно вашему описанию, я полагаю, вы хотите получить общий файл путем конвертации shareLink.

Исходя из моего теста, когда мы создаем shareLink для файла, мы можем получить shareLink для этого файла.

Затем мы можем использовать следующие шаги, чтобы получить информацию о файле путем преобразования shareLink.

1.Кодирование shareLink с использованием следующей логики:

  1)First, use base64 encode the URL.
  2)Convert the base64 encoded result to unpadded base64url format by removing = characters from the end of the value, replacing / with _ and + with -.)
  3)Append u! to be beginning of the string.

Например, для кодирования URL в C #:

string sharingUrl = "{your shareLink}";
string base64Value = System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(sharingUrl));
string encodedUrl = "u!" + base64Value.TrimEnd('=').Replace('/','_').Replace('+','-');

2.Использование следующего API для получения общего элемента:

GET /shares/{shareIdOrUrl}/driveItem

Параметр shareIdOrUrl является результатом шага 1.

Этот API вернет всю информацию об общем файле.

Более подробно мы можем обратиться к этому документу .

...