Одной из проблем в ваших кодах является то, что вы используете неправильный API, поскольку вы используете поток учетных данных клиента для получения токена доступа с использованием идентификатора приложения, вам следует использовать ниже api для создания контакта:
POST /users/{id | userPrincipalName}/contacts
Я проверяю ваши коды с объектами:
public class Contact {
public string givenName { get; set; }
public string surname { get; set; }
public List<emailAddresses> emailAddresses { get; set; }
public List<string> businessPhones { get; set; }
}
public class emailAddresses {
public string address { get; set; }
public string name { get; set; }
}
И все работает отлично.Пожалуйста, попробуйте изменить вызов API, если ошибка все еще возникает, предоставьте подробное / внутреннее сообщение об ошибке.