PHP code example of andrey-tech / sendpulse-api-php
1. Go to this page and download the library: Download andrey-tech/sendpulse-api-php library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
use App\SendPulse\SendPulseAPI;
use App\SendPulse\SendPulseAPIException;
use App\SendPulse\TokenStorage\TokenStorageException;
try {
$clientId = 'acbdef0123456789abcdef0123456789';
$clientSecret = 'acbdef0123456789abcdef0123456789';
$sendPulse = new SendPulseAPI();
// Устанавливаем собственный объект класса, обеспечивающего хранение токенов в базе данных
$sendPulse->tokenStorage = new \App\SendPulse\TokenStorage\DatabaseStorage();
$sendPulse->auth($clientId, $clientSecret);
} catch (SendPulseAPIException $e) {
printf('Ошибка (%d): %s' . PHP_EOL, $e->getCode(), $e->getMessage());
} catch (TokenStorageException $e) {
printf('Ошибка (%d): %s' . PHP_EOL, $e->getCode(), $e->getMessage());
} catch (Exception $e) {
printf('Ошибка (%d): %s' . PHP_EOL, $e->getCode(), $e->getMessage());
}
namespace App\SendPulse\TokenStorage;
class DatabaseStorage implements TokenStorageInterface
{
/**
* Сохраняет токен
* @param string $token Токен
* @param string $clientId ID клиента
* @param string $clientSecret Секрет клиента
* @return void
* @throws TokenStorageException
*/
public function save(string $token, string $clientId, string $clientSecret)
{
// Здесь токен сохраняется в базе данных
}
/**
* Загружает токен
* @param string $clientId ID клиента
* @param string $clientSecret Секрет клиента
* @return array|null
* @throws TokenStorageException
*/
public function load(string $clientId, string $clientSecret)
{
// Здесь токен извлекается из базы данных
}
/**
* Проверяет существуют ли токен для заданного ID клиента и секрета клиента
* @param string $clientId ID клиента
* @param string $clientSecret Секрет клиента
* @return bool
* @throws TokenStorageException
*/
public function hasToken(string $clientId, string $clientSecret): bool
{
// Здесь проверяется существование токена в базе данных
}
}
use App\SendPulse\SendPulseAPI;
use App\SendPulse\SendPulseAPIException;
use App\SendPulse\TokenStorage\TokenStorageException;
try {
$clientId = 'acbdef0123456789abcdef0123456789';
$clientSecret = 'acbdef0123456789abcdef0123456789';
$sendPulse = new SendPulseAPI();
$sendPulse->auth($clientId, $clientSecret);
// Загружаем все адресные книги
$num = 0;
$generator = $sendPulse->getAllAddressbooks();
foreach ($generator as $addressbooks) {
foreach ($addressbooks as $addressbook) {
$num++;
echo "[{$num}] {$addressbook['id']}: {$addressbook['name']}" . PHP_EOL;
}
}
// Получаем информацию об адресной книге по ID книги
$addressbookId = 20143254;
$response = $this->getAddressbook($addressbookId);
print_r($response);
// Добавляем новую адресную книгу
$addressbookId = $sendPulse->addAddressbook([
'bookName' => 'Тестовая адресная книга'
]);
print_r($addressbookId);
// Формируем список контактов для адресной книги
$emails = [
[
'email' => '[email protected]',
'variables' => [
'Name' => 'Тест контакт 1',
'Phone' => '+79450000001'
]
],
[
'email' => '[email protected]',
'variables' => [
'Name' => 'Тест контакт 2',
'Phone' => '+79450000002'
]
],
[
'email' => '[email protected]',
'variables' => [
'Name' => 'Тест контакт 3',
'Phone' => '+79450000003'
]
]
];
// Добавляем контакты в адресную книгу
$response = $sendPulse->addAddressbookEmails($addressbookId, $emails);
print_r($response);
// Получаем первые 100 контактов из адресной книги
$response = $sendPulse->getAddressbookEmails($addressbookId);
print_r($response);
// Получаем количество email адресов в адресной книге
$response = $sendPulse->getAddressbookEmailsTotal($addressbookId);
print_r($response);
// Получаем список переменных для адресной книги
$response = $sendPulse->getAddresbookVariables($addressbookId);
print_r($response);
// Удаляем адресную книгу
$response = $sendPulse->deleteAddressbook($addressbookId);
print_r($response);
} catch (SendPulseAPIException $e) {
printf('Ошибка (%d): %s' . PHP_EOL, $e->getCode(), $e->getMessage());
} catch (TokenStorageException $e) {
printf('Ошибка (%d): %s' . PHP_EOL, $e->getCode(), $e->getMessage());
} catch (Exception $e) {
printf('Ошибка (%d): %s' . PHP_EOL, $e->getCode(), $e->getMessage());
}
use App\SendPulse\SendPulseAPI;
use App\SendPulse\SendPulseAPIException;
use App\SendPulse\TokenStorage\TokenStorageException;
try {
$clientId = 'acbdef0123456789abcdef0123456789';
$clientSecret = 'acbdef0123456789abcdef0123456789';
$sendPulse = new SendPulseAPI();
$sendPulse->auth($clientId, $clientSecret);
// Получаем список все кампаний
$num = 0;
$generator = $sendPulse->getAllCampaigns();
foreach ($generator as $campaigns) {
foreach ($campaigns as $campaign) {
$num++;
echo "[{$num}] {$campaign['id']}: {$campaign['name']}" . PHP_EOL;
}
}
// Получаем информацию о кампании по ID кампании
$campaignId = 21058230;
$response = $this->getCampaign($campaignId);
print_r($response);
// Формируем параметры новой кампании
$sendTime = new DateTime();
$sendTime->add(new DateInterval("PT30M"));
$params = [
'sender_name' => 'Тестовый отправитель',
'sender_email' => '[email protected]',
'name' => 'Тестовая рассылка',
'subject' => 'Тестовая рассылка',
'template_id' => 2308544,
'list_id' => 79093323,
'send_date' => $sendTime->format('Y-m-d H:i:s')
];
// Добавляем новую кампанию
$campaignId = $sendPulse->addCampaign($params);
print_r($campaignId);
// Отменяем отправку запланированной кампании
$response = $sendPulse->deleteCampaign($campaignId);
print_r($response);
// Получаем список всех кампаний, которые создавались по данной адресной книге
$num = 0;
$addressbookId = 20143254;
$generator = $sendPulse->getAllAddressbookCampaigns($addressbookId);
foreach ($generator as $campaigns) {
foreach ($campaigns as $campaign) {
$num++;
echo "[{$num}] {$campaign['id']}: {$campaign['name']}" . PHP_EOL;
}
}
} catch (SendPulseAPIException $e) {
printf('Ошибка (%d): %s' . PHP_EOL, $e->getCode(), $e->getMessage());
} catch (TokenStorageException $e) {
printf('Ошибка (%d): %s' . PHP_EOL, $e->getCode(), $e->getMessage());
} catch (Exception $e) {
printf('Ошибка (%d): %s' . PHP_EOL, $e->getCode(), $e->getMessage());
}