Этот код должен добавить новый контакт в адресную книгу sendpulse
// $tokenset - ранее полученный токен
$emails = array(
array(
'email' => 'subscriber@example.com',
'variables' => array(
'phone' => '+12345678900',
'name' => 'User Name',
)
)
);
$headers = array('Authorization: Bearer ' . $tokenset);
if( $curl = curl_init() ) {
curl_setopt($curl, CURLOPT_URL, 'https://api.sendpulse.com/addressbooks/22608888/emails');
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $emails);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
$out = curl_exec($curl);
echo $out;
curl_close($curl);
}
В ответ получаю:
{"error_code":303,"message":"No emails"}
Что делаю не так, не пойму?
Из доков:
Добавление email адресов в книгу
Нужно сделать POST запрос в виде ссылки
https://api.sendpulse.com/addressbooks/{id}/emails
Параметры запроса:
id идентификатор книги
emails сериализованный массив контактов (пример ["example@gmail.com", "example@outlook.com"])
если же нужно передать не только емейл, но и переменные, то используется следующая структура передачи значений:
email емейл адрес подписчика
variables (необязательный параметр)
сериализованный массив переменных ("имя переменной":"значение переменной").
Для добавления номера телефона необходимо использовать системную переменную "Phone".
Пример структуры массива email адресов
[
{
"email": "test@test.com",
"variables": {
"Имя": "Елизавета",
"Phone": "380632727700"
}
},
{
"email": "test2@test.com",
"variables": {
"имя переменной": "значение",
"имя переменной": "значение"
}
}
]
В случае успеха вернет JSON строку с result = true
Подозреваю, что допускаю ошибку в правильности написания в этой части:
$emails = array(
array(
'email' => 'subscriber@example.com',
'variables' => array(
'phone' => '+12345678900',
'name' => 'User Name',
)
)
);