Создание контакта с помощью API Graph создает «Ссылка на объект не установлена ​​на экземпляр объекта».

Я использовал Graph API для создания контактов и синхронизации между основной учетной записью и всеми учетными записями Office 365 нашей организации. Это работало хорошо до прошлого месяца или около того.

Мой процесс синхронизации включает в себя запрос определенной папки главной учетной записи для контактов, кэширование их, а затем просмотр списка целевых пользователей, создание контактов при необходимости. Получение списков контактов, создание папок контактов и удаление контактов все по-прежнему работает должным образом. Создание контакта возвращает «ErrorInternalServerError: Ссылка на объект не установлена ​​для экземпляра объекта».

Я использовал поток client_credentials и проверил, что у моего приложения есть соответствующие учетные данные в панели администратора Azure AD. Ниже приведен объект JSON, который я размещаю для создания контакта. Это происходит независимо от контакта или целевого пользователя.

{
"categories": [],
"birthday": null,
"fileAs": "GPS 00 Bob, Todd",
"displayName": "GPS 00 Bob, Todd",
"givenName": "Todd",
"initials": "T.G.0.B.",
"middleName": "",
"nickName": null,
"surname": "GPS 00 Bob",
"title": "",
"yomiGivenName": null,
"yomiSurname": null,
"yomiCompanyName": null,
"generation": "",
"emailAddresses": [
{
"name": "Email",
"address": "todd.bob@contactsyncing.com"}
],
"imAddresses": [
""],
"jobTitle": "Chief Financial Officer",
"companyName": "",
"department": "",
"officeLocation": null,
"profession": null,
"businessHomePage": null,
"assistantName": null,
"manager": null,
"homePhones": [
""],
"mobilePhone": "",
"businessPhones": [
""],
"homeAddress": {
"street": "",
"city": "",
"state": "",
"countryOrRegion": "",
"postalCode": ""},
"businessAddress": {
"street": "701 East Lumbar Ave",
"city": "Minot",
"state": "ND",
"countryOrRegion": "United States of America",
"postalCode": "68745"},
"otherAddress": {},
"spouseName": null,
"personalNotes": null,
"children": []
}

редактировать
Дополнительная информация: Я отправляю сообщение в определенную папку контактов с ее идентификатором. Вот пример URL: https://graph.microsoft.com/v1.0/users/91bbdb7b-3b41-474c-93c9-99b1da960c18/contactFolders/AAMkADFlNzQ5NGQ5LTEwNjYtNGFiZS04NDlhLTViOGE0YzMzZjI3OQAuAAAAAAA9YtgrncHYSKObisZl7JkCAQChpNwDV4FXRaJC6UF1HyyuAAAAAAFFAAA=/contacts

Правильно ли сформирован этот идентификатор contactFolder?
/редактировать

Сценарий написан на PHP, и я просто отбираю эти запросы. Любые мысли являются предложениями, будет принята с благодарностью. Дайте мне знать, будет ли полезна любая другая информация.

Спасибо!

0

Решение

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

Я считаю это решенным. Возможно, документацию Graph API следует обновить, чтобы отразить этот факт? Кроме того, было бы разумно улучшить реакцию API на эту ошибку. «InternalServerError» не адекватно описывает причину.

Спасибо!

0

Другие решения

Других решений пока нет …