Skip to content

Commit e1a81e2

Browse files
authored
Merge pull request #81 from sendpulse/new_major_vesion
New major vesion
2 parents 1872505 + 64d152b commit e1a81e2

13 files changed

+1392
-1798
lines changed

README.md

Lines changed: 160 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,31 @@
1-
# SendPulse REST client library
1+
SendPulse REST client library
2+
================
3+
4+
[![License](http://poser.pugx.org/sendpulse/rest-api/license)](https://packagist.org/packages/sendpulse/rest-api)
5+
[![Total Downloads](http://poser.pugx.org/sendpulse/rest-api/downloads)](https://packagist.org/packages/sendpulse/rest-api)
6+
[![PHP Version Require](http://poser.pugx.org/sendpulse/rest-api/require/php)](https://packagist.org/packages/sendpulse/rest-api)
27

38
A simple SendPulse REST client library and example for PHP.
49

510
API Documentation [https://sendpulse.com/api](https://sendpulse.com/api)
611

7-
### Installing
12+
13+
### Requirements
14+
15+
- php: >=7.1.0
16+
- ext-json: *
17+
- ext-curl: *
18+
19+
20+
### Installation
821

922
Via Composer:
1023

1124
```bash
1225
composer require sendpulse/rest-api
1326
```
1427

15-
### Usage
28+
### Example
1629

1730
```php
1831
<?php
@@ -29,114 +42,170 @@ require 'vendor/autoload.php';
2942

3043
use Sendpulse\RestApi\ApiClient;
3144
use Sendpulse\RestApi\Storage\FileStorage;
45+
use Sendpulse\RestApi\ApiClientException;
3246

3347
// API credentials from https://login.sendpulse.com/settings/#api
3448
define('API_USER_ID', '');
3549
define('API_SECRET', '');
3650
define('PATH_TO_ATTACH_FILE', __FILE__);
3751

38-
$SPApiClient = new ApiClient(API_USER_ID, API_SECRET, new FileStorage());
52+
$apiClient = new ApiClient(API_USER_ID, API_SECRET, new FileStorage());
53+
3954

4055
/*
41-
* Example: Get Mailing Lists
56+
* Send GET request
57+
*
58+
* Example: Get a List of Mailing Lists
4259
*/
43-
var_dump($SPApiClient->listAddressBooks());
60+
try {
61+
$addressBooks = $apiClient->get('addressbooks', [
62+
'limit' => 100,
63+
'offset' => 0
64+
]);
65+
66+
var_dump($addressBooks);
67+
} catch (ApiClientException $e) {
68+
var_dump([
69+
'message' => $e->getMessage(),
70+
'http_code' => $e->getCode(),
71+
'response' => $e->getResponse(),
72+
'curl_errors' => $e->getCurlErrors(),
73+
'headers' => $e->getHeaders()
74+
]);
75+
}
76+
4477

4578
/*
79+
* Send POST request
80+
*
4681
* Example: Add new email to mailing lists
4782
*/
48-
$bookID = 123;
49-
$emails = array(
50-
array(
51-
'email' => '[email protected]',
52-
'variables' => array(
53-
'phone' => '+12345678900',
54-
'name' => 'User Name',
55-
)
56-
)
57-
);
58-
$additionalParams = array(
59-
'confirmation' => 'force',
60-
'sender_email' => '[email protected]',
61-
);
62-
// With confirmation
63-
var_dump($SPApiClient->addEmails($bookID, $emails, $additionalParams));
64-
65-
// Without confirmation
66-
var_dump($SPApiClient->addEmails($bookID, $emails));
67-
83+
try {
84+
$addEmailsResult = $apiClient->post('addressbooks/33333/emails', [
85+
'emails' => [
86+
[
87+
'email' => '[email protected]',
88+
'variables' => [
89+
'phone' => '+123456789',
90+
'my_var' => 'my_var_value'
91+
]
92+
], [
93+
'email' => '[email protected]',
94+
'variables' => [
95+
'phone' => '+987654321',
96+
'my_var' => 'my_var_value'
97+
]
98+
]
99+
]
100+
]);
101+
102+
var_dump($addEmailsResult);
103+
} catch (ApiClientException $e) {
104+
var_dump([
105+
'message' => $e->getMessage(),
106+
'http_code' => $e->getCode(),
107+
'response' => $e->getResponse(),
108+
'curl_errors' => $e->getCurlErrors(),
109+
'headers' => $e->getHeaders()
110+
]);
111+
}
112+
113+
68114
/*
69-
* Example: Send mail using SMTP
115+
* Send PUT request
116+
*
117+
* Example: Edit a Mailing List
70118
*/
71-
$email = array(
72-
'html' => '<p>Hello!</p>',
73-
'text' => 'Hello!',
74-
'subject' => 'Mail subject',
75-
'from' => array(
76-
'name' => 'John',
77-
'email' => '[email protected]',
78-
),
79-
'to' => array(
80-
array(
81-
'name' => 'Subscriber Name',
82-
'email' => '[email protected]',
83-
),
84-
),
85-
'bcc' => array(
86-
array(
87-
'name' => 'Manager',
88-
'email' => '[email protected]',
89-
),
90-
),
91-
'attachments' => array(
92-
'file.txt' => file_get_contents(PATH_TO_ATTACH_FILE),
93-
),
94-
);
95-
var_dump($SPApiClient->smtpSendMail($email));
119+
try {
120+
$addEmailsResult = $apiClient->put('addressbooks/33333', [
121+
'name' => "New Name"
122+
]);
123+
124+
var_dump($addEmailsResult);
125+
} catch (ApiClientException $e) {
126+
var_dump([
127+
'message' => $e->getMessage(),
128+
'http_code' => $e->getCode(),
129+
'response' => $e->getResponse(),
130+
'curl_errors' => $e->getCurlErrors(),
131+
'headers' => $e->getHeaders()
132+
]);
133+
}
134+
96135

97136
/*
98-
* Example: create new push
137+
* Send PATCH request
138+
*
139+
* Example: Edit Scheduled Campaign
99140
*/
100-
$task = array(
101-
'title' => 'Hello!',
102-
'body' => 'This is my first push message',
103-
'website_id' => 1,
104-
'ttl' => 20,
105-
'stretch_time' => 0,
106-
);
107-
108-
// This is optional
109-
$additionalParams = array(
110-
'link' => 'http://yoursite.com',
111-
'filter_browsers' => 'Chrome,Safari',
112-
'filter_lang' => 'en',
113-
'filter' => '{"variable_name":"some","operator":"or","conditions":[{"condition":"likewith","value":"a"},{"condition":"notequal","value":"b"}]}',
114-
);
115-
var_dump($SPApiClient->createPushTask($task, $additionalParams));
116-
```
141+
try {
142+
$editScheduledCampaignResult = $apiClient->patch('campaigns/333333', [
143+
"name" => "My_API_campaign",
144+
"sender_name" => "sender",
145+
"sender_email" => "[email protected]",
146+
"subject" => "Hello customer",
147+
"template_id" => 351594,
148+
"send_date" => "2023-10-21 11:45:00"
149+
]);
150+
151+
var_dump($editScheduledCampaignResult);
152+
} catch (\Sendpulse\RestApi\ApiClientException $e) {
153+
var_dump([
154+
'message' => $e->getMessage(),
155+
'http_code' => $e->getCode(),
156+
'response' => $e->getResponse(),
157+
'curl_errors' => $e->getCurlErrors(),
158+
'headers' => $e->getHeaders()
159+
]);
160+
}
117161

118-
### Usage Automation360
119162

120-
```php
121-
<?php
163+
/*
164+
* Send DELETE request
165+
*
166+
* Example: Delete Emails from a Mailing List
167+
*/
168+
try {
169+
$removeEmailsResult = $apiClient->delete('addressbooks/33333/emails', [
170+
'emails' => ['[email protected]']
171+
]);
172+
173+
var_dump($removeEmailsResult);
174+
} catch (ApiClientException $e) {
175+
var_dump([
176+
'message' => $e->getMessage(),
177+
'http_code' => $e->getCode(),
178+
'response' => $e->getResponse(),
179+
'curl_errors' => $e->getCurlErrors(),
180+
'headers' => $e->getHeaders()
181+
]);
182+
}
122183

123-
require 'vendor/autoload.php';
184+
/*
185+
* Example: Start Automation360 event
186+
*/
187+
try {
188+
$startEventResult = $apiClient->post('events/name/my_event_name', [
189+
"email" => "[email protected]",
190+
"phone" => "+123456789",
191+
"products" => [
192+
[
193+
"id" => "id value",
194+
"name" => "name value"
195+
]
196+
]
197+
]);
198+
199+
var_dump($startEventResult);
200+
} catch (ApiClientException $e) {
201+
var_dump([
202+
'message' => $e->getMessage(),
203+
'http_code' => $e->getCode(),
204+
'response' => $e->getResponse(),
205+
'curl_errors' => $e->getCurlErrors(),
206+
'headers' => $e->getHeaders()
207+
]);
208+
}
124209

125-
use Sendpulse\RestApi\Automation360;
126-
127-
// https://login.sendpulse.com/emailservice/events/
128-
$eventHash = 'EVENT_HASH';
129-
$email = '[email protected]';
130-
$phone = '380931112233';
131-
$variables = [
132-
'user_id' => 123123,
133-
'event_date' => date('Y-m-d'),
134-
'firstname' => 'Name',
135-
'lastname' => 'Family',
136-
'age' => 23
137-
];
138-
$automationClient = new Automation360($eventHash);
139-
$result = $automationClient->sendEventToSendpulse($email, $phone, $variables);
140-
141-
var_dump($result);
142210
```
211+

composer.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,16 @@
1515
{
1616
"name": "Alexey Moroz",
1717
"email": "[email protected]"
18+
},
19+
{
20+
"name": "Evgeniy Bilovol",
21+
"email": "[email protected]"
1822
}
1923
],
2024
"require": {
21-
"php": ">=5.4.0"
25+
"php": ">=7.1.0",
26+
"ext-json": "*",
27+
"ext-curl": "*"
2228
},
2329
"autoload": {
2430
"psr-4": {

0 commit comments

Comments
 (0)