Как использовать операции REST из PWA Sharepoint в консольном приложении C # - PullRequest
0 голосов
/ 09 ноября 2019

Я пытаюсь выполнить некоторые операции с веб-клиентом Project (PWA) на сервере Sharepoint.

Мне нужно сделать 2 вещи:

  1. Найти сайт проектана основе пользовательского фильтра полей
  2. Загрузка документа PDF в соответствующую папку документов

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

Вот мой код:

class Program
{
    static void Main(string[] args)
    {
        var webLists = PerformGetOperation(GetUri("/_api/web/lists"));
        var pwaProject = PerformGetOperation(GetUri("/_api/ProjectData/Projects?$select=ProjectId&$filter=(Field eq 'Filter')"));

        Console.Write(webLists);
        Console.Write(pwaProject);
        Console.ReadLine();
    }

    static JObject PerformGetOperation(Uri uri)
    {
        HttpWebRequest endpointRequest = (HttpWebRequest)WebRequest.Create(uri);

        endpointRequest.Method = "GET";
        endpointRequest.Accept = "application/json;odata=verbose";
        endpointRequest.Credentials = GetCredentials();

        try
        {
            WebResponse webResponse = endpointRequest.GetResponse();
            Stream webStream = webResponse.GetResponseStream();
            using (StreamReader responseReader = new StreamReader(webStream))
            {
                string response = responseReader.ReadToEnd();
                return JObject.Parse(response);
            }
        }
        catch (Exception e)
        {
            Console.Out.WriteLine(e.Message); Console.ReadLine();
            return null;
        }
    }

    static Uri GetUri(string api)
    {
        var sharepointRoot = "https://mysharepointserver/pwa";

        return new Uri(sharepointRoot + api);
    }

    static NetworkCredential GetCredentials()
    {
        return new NetworkCredential("mynetworkUser", "mynetworkPassword", "mynetworkDomain");
    }
}

Списки Web возвращаются без проблем, но я получаю сообщение об ошибке во втором Запросе:

Resource not found for the segment 'Projects'.

Но Uri, сформированный для этого запроса, работает как брелок при отправке из браузера https://mysharepointserver/pwa/_api/ProjectData/Projects?$select=ProjectId&$filter=(Field Eq 'значение фильтра')

Обобщение вещей. Я не знаю, как работать с Sharepoint REST API ТАКЖЕ ... У меня просто есть учетная запись пользователя для доступа к Sharepoint. Я не зарегистрировал приложение на странице AppRegNew.aspx

Есть идеи, как решить эти две задачи?

РЕДАКТИРОВАТЬ: Я забыл спросить, если этоСтрого необходимо, чтобы на сайте SharePoint был включен OAuth?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...