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
38A simple SendPulse REST client library and example for PHP.
49
510API 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
922Via Composer:
1023
1124``` bash
1225composer require sendpulse/rest-api
1326```
1427
15- ### Usage
28+ ### Example
1629
1730``` php
1831<?php
@@ -29,114 +42,170 @@ require 'vendor/autoload.php';
2942
3043use Sendpulse\RestApi\ApiClient;
3144use Sendpulse\RestApi\Storage\FileStorage;
45+ use Sendpulse\RestApi\ApiClientException;
3246
3347// API credentials from https://login.sendpulse.com/settings/#api
3448define('API_USER_ID', '');
3549define('API_SECRET', '');
3650define('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- 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+
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- 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+
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+ 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+ 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- 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+
0 commit comments