leonid74/sendpulse-php

Sendpulse REST API client library (modified)

1.0.4 2021-12-22 13:35 UTC

This package is auto-updated.

Last update: 2024-05-22 18:40:53 UTC


README

A simple SendPulse REST client library with throttling requests (no more 10 per second according to API rules) and example for PHP.

API Documentation https://sendpulse.com/api

modified by Leonid74 (forked from sendpulse/sendpulse-rest-api-php)

Installing

Via Composer:

composer require Leonid74/sendpulse-php

Usage

<?php
require 'vendor/autoload.php';

// Without Composer (and instead of "require 'vendor/autoload.php'"):
// require("your-path/sendpulse-php/src/ApiInterface.php");
// require("your-path/sendpulse-php/src/ApiClient.php");
// require("your-path/sendpulse-php/src/Storage/TokenStorageInterface.php");
// require("your-path/sendpulse-php/src/Storage/FileStorage.php");
// require("your-path/sendpulse-php/src/Storage/SessionStorage.php");
// require("your-path/sendpulse-php/src/Storage/MemcachedStorage.php");
// require("your-path/sendpulse-php/src/Storage/MemcacheStorage.php");

use Leonid74\Sendpulse\ApiClient;
use Leonid74\Sendpulse\Storage\FileStorage;

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

$SPApiClient = new ApiClient(API_USER_ID, API_SECRET, new FileStorage());

// DEBUG level can be mix or one of: DEBUG_NONE (default) or DEBUG_URL, DEBUG_HEADERS, DEBUG_CONTENT
// no debug
$SPApiClient->debugLevel = ApiClient::DEBUG_NONE;
// only URL level debug
$SPApiClient->debugLevel = ApiClient::DEBUG_URL;
// only HEADERS level debug
$SPApiClient->debugLevel = ApiClient::DEBUG_HEADERS;
// max level of debug messages to STDOUT
$SPApiClient->debugLevel = ApiClient::DEBUG_URL | ApiClient::DEBUG_HEADERS | ApiClient::DEBUG_CONTENT;

/*
 * Example: Get Mailing Lists
 */
var_dump($SPApiClient->listAddressBooks());

/*
 * Example: Add new email to mailing lists
 */
 $bookID = 123;
 $emails = array(
    array(
        'email' => 'subscriber@example.com',
        'variables' => array(
            'phone' => '+12345678900',
            'name' => 'User Name',
        )
    )
);
 $additionalParams = array(
   'confirmation' => 'force',
   'sender_email' => 'sender@example.com',
);
 // With confirmation
var_dump($SPApiClient->addEmails($bookID, $emails, $additionalParams));

// Without confirmation
var_dump($SPApiClient->addEmails($bookID, $emails));

/*
 * Example: Send mail using SMTP
 */
$email = array(
    'html' => '<p>Hello!</p>',
    'text' => 'Hello!',
    'subject' => 'Mail subject',
    'from' => array(
        'name' => 'John',
        'email' => 'sender@example.com',
    ),
    'to' => array(
        array(
            'name' => 'Subscriber Name',
            'email' => 'subscriber@example.com',
        ),
    ),
    'bcc' => array(
        array(
            'name' => 'Manager',
            'email' => 'manager@example.com',
        ),
    ),
    'attachments' => array(
        'file.txt' => file_get_contents(PATH_TO_ATTACH_FILE),
    ),
);
var_dump($SPApiClient->smtpSendMail($email));

/*
 * Example: create new push
 */
$task = array(
    'title' => 'Hello!',
    'body' => 'This is my first push message',
    'website_id' => 1,
    'ttl' => 20,
    'stretch_time' => 0,
);

// This is optional
$additionalParams = array(
    'link' => 'http://yoursite.com',
    'filter_browsers' => 'Chrome,Safari',
    'filter_lang' => 'en',
    'filter' => '{"variable_name":"some","operator":"or","conditions":[{"condition":"likewith","value":"a"},{"condition":"notequal","value":"b"}]}',
);
var_dump($SPApiClient->createPushTask($task, $additionalParams));