Я использую (JSON) HTTP-интерфейс для связи с SharePoint. Само общение осуществляется через cURL и оболочку удобства в PHP. Проблемы возникают, когда я хочу отправить данные в SP.
Поскольку я не специалист по Microsoft / SharePoint, мне не хватает словарного запаса, чтобы объяснить свои потребности. Поэтому я продемонстрирую, используя данные, полученные от SharePoint.
GET http://example.org/mytest/_vti_bin/listdata.svc/Aufgaben(2) возвращает следующие (усеченные мной) данные:
{
"d" : {
"__metadata": {
"uri": "http://example.org/mytest/_vti_bin/listdata.svc/Aufgaben(2)",
"etag": "W/\"5\"",
"type": "Microsoft.SharePoint.DataService.AufgabenItem"
},
"ID": 2,
"InhaltstypID": "0x010800821BC29B80192B4C960A688416597526",
"Inhaltstyp": "Aufgabe",
"Titel": "Neuer Titel",
"ZugewiesenAn": {
"__deferred": {
"uri": "http://example.org/mytest/_vti_bin/listdata.svc/Aufgaben(2)/ZugewiesenAn"
}
},
"ZugewiesenAnId": 29,
"F\u00e4lligkeitsdatum": "\/Date(1323993600000)\/"
}
}
"ZugewiesenAn" - пользователь. Если я запрашиваю отложенные значения, я получаю (усеченный мной, снова)
{
"d" : {
"__metadata": {
"uri": "http://example.org/mytest/_vti_bin/listdata.svc/Benutzerinformationsliste(29)",
"etag": "W/\"1\"",
"type": "Microsoft.SharePoint.DataService.BenutzerinformationslisteItem"
},
"InhaltstypID": "0x010A000719C31710976A48867763D86F6586E0",
"Name": "Rehm Rodney",
"Konto": "EXT\\rodney.rehm",
"ID": 29,
"Inhaltstyp": "Person",
}
}
Итак, я вижу, что значение «ZugewiesenAn» должно быть «EXT \ rodney.rehm» (так как мне нужно имя пользователя). Пока что проблем нет.
Вопрос в том, как создать новый или обновить существующий объект с другим пользователем для «ZugewiesenAn» (поле «Пользователь / группа»)?
Я пробовал:
- Отправка имени пользователя в качестве значения "ZugewiesenAn" или "ZugewiesenAnId" приводит к неверному запросу.
- Запрос http://example.org/_vti_bin/People.asmx (SOAP: SearchPrincipals) выдает только числовые идентификаторы для людей, которые действительно работали со списком. Если я запрашиваю имя пользователя, который ранее не входил в этот список SharePoint, я получаю идентификатор -1.