Как добавить новый контакт в Dynamics 365 с помощью PHP

В приложении Joomla я получаю информацию о пользователе следующим образом, а затем мне нужно сохранить информацию о пользователе в качестве контакта в базе данных Dynamics 365 через их REST API.

                    $user = JFactory::getUser();
                    $username = $user->username;
                    $name = $user->name;

Я просмотрел документы Dynamics по Web API и REST API, например this и это, но ни один из них не предоставляет полезной информации о том, как я могу вызвать API, чтобы добавить новый контакт. В настоящее время я подключаюсь к веб-приложению Dynamics 365 по этому URL-адресу: http://example.com:8088/mysite/api/data/v8.2. В связанном сообщении также говорится о REST API, но только о запросах. Я ищу способ публиковать данные в Dynamics CRM с помощью REST API.


person codezombie    schedule 28.07.2018    source источник
comment
Возможный дубликат доступа MS Dynamics CRM через PHP API   -  person Arun Vinoth    schedule 28.07.2018
comment
@ArunVinoth связанный пост отличается в том смысле, что он говорит только о запросах, но я хочу публиковать данные.   -  person codezombie    schedule 28.07.2018
comment
Вы сказали, что уже подключаетесь по URL. Вы тестировали URL-адрес CRM REST API с полезной нагрузкой из моего ответа? Какой-нибудь конкретный блокировщик?   -  person Arun Vinoth    schedule 01.08.2018
comment
Да, @ArunVinoth, это не работало с локальной Dynamics 365.   -  person codezombie    schedule 08.08.2018
comment
Что я узнал из вашего другого вопроса: stackoverflow.com/q/51694272/7920473 у вас проблемы с частью аутентификации при вызове API , но это рабочий код ответа на этот конкретный вопрос.   -  person Arun Vinoth    schedule 08.08.2018


Ответы (1)


Полезная нагрузка для создания контакта с использованием crm webapi будет выглядеть следующим образом: Подробнее

POST [Organization URI]/api/data/v8.2/contacts HTTP/1.1
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0
Accept: application/json

{
    "firstname": "Arun",
    "lastname": "Vinoth"
}

Извините, я не из PHP, но эта ссылка может вам помочь.

Обновление:
Я немного просмотрел. Нашел приведенный ниже пример кода из SO answer. Обновите [Organization URI] URL-адресом CRM, например. https://testorg.crm.dynamics.com

$url = '[Organization URI]/api/data/v8.2/contacts';
$data = array('firstname' => 'Arun', 'lastname' => 'Vinoth');

// use key 'http' even if you send the request to https://...
$options = array(
    'http' => array(
        'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
        'method'  => 'POST',
        'content' => http_build_query($data),
    ),
);
$context  = stream_context_create($options);
$result = file_get_contents($url, false, $context);

var_dump($result);
person Arun Vinoth    schedule 28.07.2018
comment
откуда я могу получить [URI организации]. У меня есть учетная запись portal.azure.com и все такое. - person Adeel Shekhani; 09.07.2020
comment
@AdeelShekhani, это URL вашей организации crm .. например. «devcrm.crm.dynamics.com» - person Arun Vinoth; 09.07.2020
comment
Спасибо. Я нашел это. Не могли бы вы рассказать мне, как мне получить, обновить, вставить контакты, пользователей и т. Д. Документы содержат это везде /api/data/v8.0/accounts и т. Д., Но я не мог найти, как авторизоваться. Прямо сейчас. Если я попытаюсь получить контакты, он вернет 401 с жалобой на WWW-Authenticate. - person Adeel Shekhani; 09.07.2020
comment
@AdeelShekhani это более или менее то же самое, просто переключите имена схем в конечных точках веб-API и используйте правильные имена схем атрибутов. Попробуйте crm rest builder для составления запросов. Для аутентификации необходимо использовать методы регистрации и токена в приложении Azure I’d. Начните с почтальона или чего-то еще для начальной настройки и тестирования - person Arun Vinoth; 09.07.2020
comment
Есть ли какой-нибудь URL-адрес, по которому я могу найти какие-либо рекомендации. Я использую почтальон для авторизации и login.microsoftonline.com {tenant} / авторизируюсь с client_id в теле сообщения POST , но я получаю ответ: «Войдите в свою учетную запись. также тело запроса должно содержать следующий параметр: \ u0026 # 39; client_id \ u0026 # 39 - person Adeel Shekhani; 09.07.2020
comment
@AdeelShekhani Google лучше всего, проверьте это rajeevpentyala.com/2019/02/13/ - person Arun Vinoth; 09.07.2020