Как получить изображение для предварительного просмотра документа с помощью SharePoint CSOM

Я хотел бы программно получать миниатюры документов из SharePoint. Я пытаюсь сделать следующее:

document.GetImagePreviewUrl(width, height, clientType);

Это просто возвращает пустой ClientResult. Я не уверен, что вводить в качестве значения clientType.

Я также пытался использовать этот метод программно (используя WebClient и скачивая файл). Но это просто возвращает ответ 403.

Возможные решения, которые я вижу здесь, следующие:

  • Выясните, что вводить как clientType, и таким образом получите URL-адрес предварительного просмотра.
  • Выясните, как сообщить SharePoint, что я авторизован программно (например, с помощью WebClient и заголовков).

Мне нужна помощь в отношении этих двух вариантов, я не уверен, с чего начать, поскольку оба варианта плохо документированы.


person Targa    schedule 28.10.2015    source источник


Ответы (1)


Я нашел способ сделать это, ошибка 403 была вызвана тем, что sharepoint не знал, кто я такой. После некоторых исследований и возни я обнаружил, что запрос, который вы отправляете на страницу предварительного просмотра, содержит файл cookie аутентификации. Этот файл cookie может быть сгенерирован с помощью кода, использующего этот фрагмент кода:

// Create an authentication cookie which we can send with the request so sharepoint knows who we are.
var authCookie = credentials.GetAuthenticationCookie(new Uri(imageUrl));
client.Headers.Add(HttpRequestHeader.Cookie, authCookie);
// Download the image data to a byte array
image = client.DownloadData(imageUrl);
person Targa    schedule 28.10.2015