Я пытаюсь выполнить некоторые операции с веб-клиентом Project (PWA) на сервере Sharepoint.
Мне нужно сделать 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?