Интерком API CURL Получение кода ошибки: «код»: «400», «сообщение»: «Должен быть указан адрес электронной почты пользователя, user_id или anonymous_id»;

Я хочу обновить custom_attributes внутренней связи через PHP CURL.

Я передаю user_id и адрес электронной почты в качестве параметра по-прежнему получаю эту ошибку.
{«code»: «400», «message»: «Должен быть указан адрес электронной почты пользователя, user_id или anonymous_id»}

try {
$postData = json_encode(array(
"user_id" => strval($userDetails["id"]),
"email" => $userEmail,
"custom_attributes" => ['unsubscribed_from_emails' => 'true']
));

$postHeader = [
'Authorization: Bearer <Access Token>',
'Accept: application/json',
'Content-Type: application/json -d'
];

$curl = curl_init("https://api.intercom.io/users");
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_POSTFIELDS, $postData);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_HTTPHEADER, $postHeader);
curl_exec($curl);
curl_close($curl);
} catch (Exception $e) {
error_log($e->getMessage());
}

0

Решение

Согласно php.net о CURLOPT_POSTFIELDS:

Этот параметр может быть передан как строка в кодировке
«Para1 = знач1&para2 = знач2&… ‘или в виде массива с именем поля в качестве ключа
и полевые данные в качестве значения. Если значение является массивом, заголовок Content-Type
будет установлен в multipart / form-data.

http://us2.php.net/manual/en/function.curl-setopt.php

Но вы передаете JSON вместо.

0

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

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

По вопросам рекламы [email protected]