octopush/sms-api

Octopush - Send SMS like a PRO

2.0.4 2022-01-06 10:17 UTC

This package is auto-updated.

Last update: 2024-04-06 16:57:51 UTC


README

Octopush SMS API PHP client.

Installation

$ composer require octopush/sms-api

Usage

Sending a text SMS Campaign

<?php

$client = new Octopush\Client('*****@mail.com', '***API-KEY***');

$request = new Octopush\Request\SmsCampaign\SendSmsCampaignRequest();
$request->setRecipients([
    [
        'phone_number' => '+33600000000',
        'param1' => 'Alex',
    ]
]);
$request->setSender('AnySender');
$request->setText('Hello {param1}, HAPPY NEW YEAR');
$request->setType(Octopush\Constant\TypeEnum::SMS_PREMIUM);

// ---------------------------------
// optional
// ---------------------------------
$request->setPurpose(Octopush\Request\SmsCampaign\SendSmsCampaignRequest::ALERT_TRANSACTIONAL);
$request->setWithReplies(false);

$date = new DateTimeImmutable('2021-01-01 00:01:00');
$isoDateWithTimeZone = $date->format(DATE_ISO8601); // 2021-01-01T00:01:00+0100
$request->setSendAt($isoDateWithTimeZone); // also works with "2021-01-01 00:01:00", (Central European TimeZone by default)
// ---------------------------------

$content = $client->send($request);

// ---------------------------------
// Result example:
// ---------------------------------
{
    "sms_ticket": "sms_5fec89fe97109",
    "number_of_contacts": 1,
    "total_cost": 0.0333,
    "number_of_sms_needed": 1,
    "residual_credit": 99.5
}

Sending a Vocal SMS Campaign

<?php

$client = new Octopush\Client('*****@mail.com', '***API-KEY***');

$request = new Octopush\Request\VocalCampaign\SendVocalCampaignRequest();
$request->setRecipients([
    [
        'phone_number' => '+33600000000',
    ]
]);
$request->setSender('AnySender');
$request->setText('Hello, HAPPY NEW YEAR');
$request->setType(Octopush\Constant\TypeEnum::VOCAL_SMS);
$request->setVoiceGender('female');
$request->setVoiceLanguage('fr-FR');

// ---------------------------------
// optional
// ---------------------------------
$request->setPurpose(Octopush\Request\VocalCampaign\SendVocalCampaignRequest::ALERT_TRANSACTIONAL);

$date = new DateTimeImmutable('2021-01-01 00:01:00');
$isoDateWithTimeZone = $date->format(DATE_ISO8601); // 2021-01-01T00:01:00+0100
$request->setSendAt($isoDateWithTimeZone); // also works with "2021-01-01 00:01:00", (Central European TimeZone by default)
// ---------------------------------

$content = $client->send($request);

// ---------------------------------
// Result example:
// ---------------------------------
{
    "vocal_ticket": "vocal_5fed928fda524",
    "number_of_contacts": 1,
    "total_cost": 0.03,
    "residual_credit": 99.5,
    "estimated_duration": 30
}

Checking your credit

<?php

$client = new Octopush\Client('*****@example.com', '***API-KEY***');

$request = new Octopush\Request\GetCreditRequest();
$request->setProductName(Octopush\Constant\TypeEnum::VOCAL_SMS);
$request->setCountryCode('FR');
$request->setWithDetails(true);

$content = $client->send($request);

// ---------------------------------
// Result example:
// ---------------------------------
{
    "amount": 10,
    "unit": "vocal_sms",
    "wallet_packs": [
        {
            "id": "1d234c18-396c-12eb-b80e-02455c12550a",
            "credit": 10,
            "expiration_date": "2030-12-08T16:45:14+01:00"
        }
    ]
}

cURL examples

You can find cURL examples in curl-examples directory.