Здравствуйте!
Я хочу добавить на страницу форму подписки, используя API Юнисендера.
Нашел, как использовать метод subscribe, подготовил обработчик. Но при отправке получаю ошибку HTTP ERROR 500.
Если составлять запрос вручную, то введенный адрес добавляется в список.
Вот форма:
<form action="subscribe.php" method="POST">
<input type="email" class="input" placeholder="Your Email Address" name="fields[email]" required autocomplete="off">
<button type="submit">
Subscribe Now
</button>
</form>
Вот код:
<?php
require_once("unisenderapi.php");
$api_key = "тут ключ";
$uni = new UniSenderApi($api_key);
$user_lists = "тут id списка";
$user_tag = urlencode("Added using API");
$POST = array (
'api_key' => $api_key,
'list_ids' => $user_lists,
'fields[email]' => $user_email,
'double_optin' => 3,
'tags' => $user_tag
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $POST);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_URL, 'http://api.unisender.com/ru/api/subscribe?format=json');
$result = curl_exec($ch);
if ($result) {
$jsonObj = json_decode($result);
if(null===$jsonObj) {
echo "Invalid JSON";
}
elseif(!empty($jsonObj->error)) {
echo "An error occured: " . $jsonObj->error . "(code: " . $jsonObj->code . ")";
} else {
echo "Added. ID is " . $jsonObj->result->person_id;
}
} else {
echo "API access error";
}
?>