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 )
2
7
3
8
A simple SendPulse REST client library and example for PHP.
4
9
5
10
API Documentation [ https://sendpulse.com/api ] ( https://sendpulse.com/api )
6
11
7
- ### Installing
12
+
13
+ ### Requirements
14
+
15
+ - php: >=7.1.0
16
+ - ext-json: *
17
+ - ext-curl: *
18
+
19
+
20
+ ### Installation
8
21
9
22
Via Composer:
10
23
11
24
``` bash
12
25
composer require sendpulse/rest-api
13
26
```
14
27
15
- ### Usage
28
+ ### Example
16
29
17
30
``` php
18
31
<?php
@@ -29,114 +42,170 @@ require 'vendor/autoload.php';
29
42
30
43
use Sendpulse\RestApi\ApiClient;
31
44
use Sendpulse\RestApi\Storage\FileStorage;
45
+ use Sendpulse\RestApi\ApiClientException;
32
46
33
47
// API credentials from https://login.sendpulse.com/settings/#api
34
48
define('API_USER_ID', '');
35
49
define('API_SECRET', '');
36
50
define('PATH_TO_ATTACH_FILE', __FILE__);
37
51
38
- $SPApiClient = new ApiClient(API_USER_ID, API_SECRET, new FileStorage());
52
+ $apiClient = new ApiClient(API_USER_ID, API_SECRET, new FileStorage());
53
+
39
54
40
55
/*
41
- * Example: Get Mailing Lists
56
+ * Send GET request
57
+ *
58
+ * Example: Get a List of Mailing Lists
42
59
*/
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
+
44
77
45
78
/*
79
+ * Send POST request
80
+ *
46
81
* Example: Add new email to mailing lists
47
82
*/
48
- $bookID = 123;
49
- $emails = array(
50
- array(
51
-
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
+
88
+ 'variables' => [
89
+ 'phone' => '+123456789',
90
+ 'my_var' => 'my_var_value'
91
+ ]
92
+ ], [
93
+
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
+
68
114
/*
69
- * Example: Send mail using SMTP
115
+ * Send PUT request
116
+ *
117
+ * Example: Edit a Mailing List
70
118
*/
71
- $email = array(
72
- 'html' => '<p >Hello!</p >',
73
- 'text' => 'Hello!',
74
- 'subject' => 'Mail subject',
75
- 'from' => array(
76
- 'name' => 'John',
77
-
78
- ),
79
- 'to' => array(
80
- array(
81
- 'name' => 'Subscriber Name',
82
-
83
- ),
84
- ),
85
- 'bcc' => array(
86
- array(
87
- 'name' => 'Manager',
88
-
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
+
96
135
97
136
/*
98
- * Example: create new push
137
+ * Send PATCH request
138
+ *
139
+ * Example: Edit Scheduled Campaign
99
140
*/
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
+ }
117
161
118
- ### Usage Automation360
119
162
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
+
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
+ }
122
183
123
- require 'vendor/autoload.php';
184
+ /*
185
+ * Example: Start Automation360 event
186
+ */
187
+ try {
188
+ $startEventResult = $apiClient->post('events/name/my_event_name', [
189
+
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
+ }
124
209
125
- use Sendpulse\RestApi\Automation360;
126
-
127
- // https://login.sendpulse.com/emailservice/events/
128
- $eventHash = 'EVENT_HASH';
129
-
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);
142
210
```
211
+
0 commit comments