Skip to content

Commit 3e88041

Browse files
author
Alexey Moroz
committed
add methods for SMS service
1 parent cd1acfd commit 3e88041

File tree

3 files changed

+514
-0
lines changed

3 files changed

+514
-0
lines changed

example/index.php

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,3 +70,97 @@
7070
'filter' => '{"variable_name":"some","operator":"or","conditions":[{"condition":"likewith","value":"a"},{"condition":"notequal","value":"b"}]}',
7171
);
7272
var_dump($SPApiClient->createPushTask($task, $additionalParams));
73+
74+
75+
/*
76+
* SMS methods
77+
*/
78+
79+
80+
// Add phones to book
81+
var_dump($SPApiClient->addPhones(BOOK_ID, ['111111111111']));
82+
83+
// Add phones with variables to book
84+
$data = [
85+
'111111111111' => [
86+
[
87+
[
88+
'name' => 'var_value',
89+
'type' => 'string',
90+
'value' => 'variable value',
91+
]
92+
]
93+
]
94+
];
95+
var_dump($SPApiClient->addPhonesWithVariables(BOOK_ID, $data));
96+
97+
// Update variables
98+
$phones = ['111111111111'];
99+
$variables = [
100+
[
101+
'name' => 'var_value',
102+
'type' => 'string',
103+
'value' => 'new value',
104+
]
105+
];
106+
var_dump($SPApiClient->updatePhoneVaribales(BOOK_ID, $phones, $variables));
107+
108+
// Remove phones
109+
var_dump($SPApiClient->deletePhones(BOOK_ID, ['111111111111']));
110+
111+
// Get phone info
112+
var_dump($SPApiClient->getPhoneInfo(BOOK_ID, '111111111111'));
113+
114+
// Add phones to blacklist
115+
var_dump($SPApiClient->addPhonesToBlacklist(['111111111111']));
116+
117+
// Remove phones from blacklist
118+
var_dump($SPApiClient->removePhonesFromBlacklist(['111111111111']));
119+
120+
// List phones from blacklist
121+
var_dump($SPApiClient->getPhonesFromBlacklist());
122+
123+
// Create SMS campaign by book
124+
$params = [
125+
'sender' => 'testsender',
126+
'body' => 'test'
127+
];
128+
$additionalParams = [
129+
'transliterate' => 0
130+
];
131+
var_dump($SPApiClient->sendSmsByBook(BOOK_ID, $params, $additionalParams));
132+
133+
// Create SMS campaign by phone list
134+
$phones = ['111111111111'];
135+
$params = [
136+
'sender' => 'testsender',
137+
'body' => 'test'
138+
];
139+
$additionalParams = [
140+
'transliterate' => 0
141+
];
142+
var_dump($SPApiClient->sendSmsByList($phones, $params, $additionalParams));
143+
144+
// List SMS campaigns
145+
$params = [ // optional params
146+
'dateFrom' => '2018-01-31 00:00:00',
147+
'dateTo' => '2018-10-31 23:59:59'
148+
];
149+
var_dump($SPApiClient->listSmsCampaigns($params));
150+
151+
// Get information about SMS campaign
152+
var_dump($SPApiClient->getSmsCampaignInfo(CAMPAIGN_ID));
153+
154+
// Cancel SMS campaign
155+
var_dump($SPApiClient->cancelSmsCampaign(CAMPAIGN_ID));
156+
157+
// Calculate SMS campaign cost by book or phone list
158+
$params = [
159+
'addressBookId' => BOOK_ID, // or 'phones' => ['111111111111']
160+
'sender' => 'testsender',
161+
'body' => 'test'
162+
];
163+
var_dump($SPApiClient->getSmsCampaignCost($params));
164+
165+
// Delete sms campaign
166+
var_dump($SPApiClient->deleteSmsCampaign(CAMPAIGN_ID));

src/ApiClient.php

Lines changed: 287 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1208,4 +1208,291 @@ public function startEventAutomation360($eventName, array $variables)
12081208

12091209
return $this->handleResult($requestResult);
12101210
}
1211+
1212+
/**
1213+
* Add phones to addressbook
1214+
*
1215+
* @param $bookID
1216+
* @param array $phones
1217+
* @return stdClass
1218+
*/
1219+
public function addPhones($bookID, array $phones)
1220+
{
1221+
if (empty($bookID)) {
1222+
return $this->handleError('Empty book id');
1223+
}
1224+
1225+
$data = [
1226+
'addressBookId' => $bookID,
1227+
'phones' => json_encode($phones)
1228+
];
1229+
1230+
$requestResult = $this->sendRequest('/sms/numbers', 'POST', $data);
1231+
1232+
return $this->handleResult($requestResult);
1233+
}
1234+
1235+
/**
1236+
* Add phones with variables to addressbook
1237+
*
1238+
* @param $bookID
1239+
* @param array $phones
1240+
* @return stdClass
1241+
*/
1242+
public function addPhonesWithVariables($bookID, array $phonesWithVariables)
1243+
{
1244+
if (empty($bookID)) {
1245+
return $this->handleError('Empty book id');
1246+
}
1247+
1248+
$data = [
1249+
'addressBookId' => $bookID,
1250+
'phones' => json_encode($phonesWithVariables)
1251+
];
1252+
1253+
$requestResult = $this->sendRequest('/sms/numbers/variables', 'POST', $data);
1254+
1255+
return $this->handleResult($requestResult);
1256+
}
1257+
1258+
/**
1259+
* Update variables for phones
1260+
*
1261+
* @param $bookID
1262+
* @param array $phones
1263+
* @param array $variables
1264+
* @return stdClass
1265+
*/
1266+
public function updatePhoneVaribales($bookID, array $phones, array $variables)
1267+
{
1268+
if (empty($bookID)) {
1269+
return $this->handleError('Empty book id');
1270+
}
1271+
1272+
$data = [
1273+
'addressBookId' => $bookID,
1274+
'phones' => json_encode($phones),
1275+
'variables' => json_encode($variables)
1276+
];
1277+
1278+
$requestResult = $this->sendRequest('/sms/numbers', 'PUT', $data);
1279+
1280+
return $this->handleResult($requestResult);
1281+
}
1282+
1283+
/**
1284+
* Delete phones from book
1285+
*
1286+
* @param $bookID
1287+
* @param array $phones
1288+
* @return stdClass
1289+
*/
1290+
public function deletePhones($bookID, array $phones)
1291+
{
1292+
if (empty($bookID)) {
1293+
return $this->handleError('Empty book id');
1294+
}
1295+
1296+
$data = [
1297+
'addressBookId' => $bookID,
1298+
'phones' => json_encode($phones)
1299+
];
1300+
1301+
$requestResult = $this->sendRequest('/sms/numbers', 'DELETE', $data);
1302+
1303+
return $this->handleResult($requestResult);
1304+
}
1305+
1306+
/**
1307+
* get information about phone number
1308+
*
1309+
* @param $bookID
1310+
* @param $phoneNumber
1311+
* @return stdClass
1312+
*/
1313+
public function getPhoneInfo($bookID, $phoneNumber)
1314+
{
1315+
if (empty($bookID)) {
1316+
return $this->handleError('Empty book id');
1317+
}
1318+
1319+
$requestResult = $this->sendRequest('/sms/numbers/info/'.$bookID.'/'.$phoneNumber);
1320+
1321+
return $this->handleResult($requestResult);
1322+
}
1323+
1324+
/**
1325+
* Add phones to blacklist
1326+
*
1327+
* @param $bookID
1328+
* @param array $phones
1329+
* @return stdClass
1330+
*/
1331+
public function addPhonesToBlacklist(array $phones)
1332+
{
1333+
$data = [
1334+
'phones' => json_encode($phones)
1335+
];
1336+
1337+
$requestResult = $this->sendRequest('/sms/black_list', 'POST', $data);
1338+
1339+
return $this->handleResult($requestResult);
1340+
}
1341+
1342+
/**
1343+
* Delete phones from blacklist
1344+
*
1345+
* @param array $phones
1346+
* @return stdClass
1347+
*/
1348+
public function removePhonesFromBlacklist(array $phones)
1349+
{
1350+
$data = [
1351+
'phones' => json_encode($phones)
1352+
];
1353+
1354+
$requestResult = $this->sendRequest('/sms/black_list', 'DELETE', $data);
1355+
1356+
return $this->handleResult($requestResult);
1357+
}
1358+
1359+
/**
1360+
* Get list of phones from blacklist
1361+
*
1362+
* @return stdClass
1363+
*/
1364+
public function getPhonesFromBlacklist()
1365+
{
1366+
$requestResult = $this->sendRequest('/sms/black_list');
1367+
1368+
return $this->handleResult($requestResult);
1369+
}
1370+
1371+
/**
1372+
* Create sms campaign based on phones in book
1373+
*
1374+
* @param $bookID
1375+
* @param array $params
1376+
* @param array $additionalParams
1377+
* @return stdClass
1378+
*/
1379+
public function sendSmsByBook($bookID, array $params, array $additionalParams = [])
1380+
{
1381+
if (empty($bookID)) {
1382+
return $this->handleError('Empty book id');
1383+
}
1384+
1385+
$data = [
1386+
'addressBookId' => $bookID
1387+
];
1388+
1389+
$data = array_merge($data, $params);
1390+
1391+
if ($additionalParams) {
1392+
$data = array_merge($data, $additionalParams);
1393+
}
1394+
1395+
$requestResult = $this->sendRequest('/sms/campaigns', 'POST', $data);
1396+
1397+
return $this->handleResult($requestResult);
1398+
}
1399+
1400+
/**
1401+
* Create sms campaign based on list
1402+
*
1403+
* @param $phones
1404+
* @param array $params
1405+
* @param array $additionalParams
1406+
* @return stdClass
1407+
*/
1408+
public function sendSmsByList(array $phones, array $params, array $additionalParams)
1409+
{
1410+
$data = [
1411+
'phones' => json_encode($phones)
1412+
];
1413+
1414+
$data = array_merge($data, $params);
1415+
1416+
if ($additionalParams) {
1417+
$data = array_merge($data, $additionalParams);
1418+
}
1419+
1420+
$requestResult = $this->sendRequest('/sms/send', 'POST', $data);
1421+
1422+
return $this->handleResult($requestResult);
1423+
}
1424+
1425+
/**
1426+
* List sms campaigns
1427+
*
1428+
* @param $params
1429+
* @return stdClass
1430+
*/
1431+
public function listSmsCampaigns(array $params = null)
1432+
{
1433+
$requestResult = $this->sendRequest('/sms/campaigns/list', 'GET', $params);
1434+
1435+
return $this->handleResult($requestResult);
1436+
}
1437+
1438+
/**
1439+
* Get info about sms campaign
1440+
*
1441+
* @param $campaignID
1442+
* @return stdClass
1443+
*/
1444+
public function getSmsCampaignInfo($campaignID)
1445+
{
1446+
$requestResult = $this->sendRequest('/sms/campaigns/info/'.$campaignID);
1447+
1448+
return $this->handleResult($requestResult);
1449+
}
1450+
1451+
/**
1452+
* Cancel SMS campaign
1453+
*
1454+
* @param $campaignID
1455+
* @return stdClass
1456+
*/
1457+
public function cancelSmsCampaign($campaignID)
1458+
{
1459+
$requestResult = $this->sendRequest('/sms/campaigns/cancel/'.$campaignID, 'PUT');
1460+
1461+
return $this->handleResult($requestResult);
1462+
}
1463+
1464+
/**
1465+
* Get SMS campaign cost based on book or simple list
1466+
*
1467+
* @param array $params
1468+
* @param array|null $additionalParams
1469+
* @return stdClass
1470+
*/
1471+
public function getSmsCampaignCost(array $params, array $additionalParams = null)
1472+
{
1473+
if (!isset($params['addressBookId']) && !isset($params['phones'])) {
1474+
return $this->handleError('You mast pass phones list or addressbook ID');
1475+
}
1476+
1477+
if ($additionalParams) {
1478+
$params = array_merge($params, $additionalParams);
1479+
}
1480+
1481+
$requestResult = $this->sendRequest('/sms/campaigns/cost', 'GET', $params);
1482+
1483+
return $this->handleResult($requestResult);
1484+
}
1485+
1486+
/**
1487+
* Delete SMS campaign
1488+
*
1489+
* @param $campaignID
1490+
* @return stdClass
1491+
*/
1492+
public function deleteSmsCampaign($campaignID)
1493+
{
1494+
$requestResult = $this->sendRequest('/sms/campaigns', 'DELETE', ['id' => $campaignID]);
1495+
1496+
return $this->handleResult($requestResult);
1497+
}
12111498
}

0 commit comments

Comments
 (0)