Создать анонимную ссылку Sharepoint с помощью REST API - PullRequest
0 голосов
/ 14 мая 2018

У меня есть PHP-приложение, в котором я получаю документы из Sharepoint и отображаю их в списке, где пользователи могут щелкнуть, чтобы просмотреть / загрузить файл. В настоящее время я делаю ссылку на URL Sharepoint, который защищен логином. Мне нужно указать ссылку, по которой могут получить доступ анонимные пользователи.

Я могу создать ссылку общего доступа, используя интерфейс Sharepoint, и вижу на вкладке сеть (консоль Google), что сделан запрос POST к https://myclient.sharepoint.com/sites/CustomerPortal/_api/web/Lists(@a1)/GetItemById(@2)/ShareLink?@a1=%27%7B11CD851B%2D1385%2D43DA%2DBB41%2D132AFAAA0927%7D%27&@a2=%274620%27. Когда я пытаюсь выполнить тот же запрос через почтальона, я получаю следующую ошибку:

{
    "error": {
        "code": "-1, Microsoft.SharePoint.Client.InvalidClientQueryException",
        "message": {
            "lang": "en-US",
            "value": "The expression \"web/Lists(@a1)/GetItemById(@2)/ShareLink\" is not valid."
        }
    }
}

Я пытался создать анонимную ссылку, используя конечную точку: https://myclient.sharepoint.com/sites/CustomerPortal/_api/SP.Web.CreateAnonymousLink со следующим телом JSON:

{
    "url":"http://myclient.sharepoint.com/CustomerPortal/Folder/file.pdf",
    "isEditLink":"true"
}

и я получаю ответ:

{
    "error": {
        "code": "-1, System.InvalidOperationException",
        "message": {
            "lang": "en-US",
            "value": "Operation is not valid due to the current state of the object."
        }
    }
}

Как я могу создать анонимную ссылку, используя REST API ? Является ли это возможным? Есть ли какая-либо конфигурация, которую мой клиент должен выполнить на стороне Sharepoint?

Спасибо.

...