myps/amio-php-sdk

A PHP client library for accessing amio.io APIs.

dev-master 2019-05-06 16:02 UTC

This package is not auto-updated.

Last update: 2024-10-01 17:06:15 UTC


README

PHP client library implementing Amio API for instant messengers.

Let us know how to improve this library. We'll be more than happy if you report any issues or even create pull requests. ;-)

Prerequisities

Signup to Amio and create a channel before using this library.

Installation

composer require myps/amio-php-sdk

Quickstart

Send a message

$client = new \MYPS\Amio\Api\Client('get access token at https://app.amio.io/administration/settings/api');

$messageApi = new \MYPS\Amio\Api\Messages($client);


try {
    //Step 1 - create message
    $message = \MYPS\Amio\Messages\Message::text("Hello facebook!");
    
    //Step 2 - send message
    $messageApi->send($message, "{CHANNEL_ID}", ["id" => "{CONTACT_ID}"]);
    
    //Shorter way to send sms to phone number
    $messageApi->sendSMS("Hello world!", "{CHANNEL_ID}", "{PHONE_NUMBER}");
} catch (\MYPS\Amio\Exceptions\AmioResponseException $e) {
    echo "Amio error: {$e->getMessage()}";
} catch (\GuzzleHttp\Exception\GuzzleException $e) {
    echo "Guzzle error: {$e->getMessage()}";
}

Receive a message

// Create your own classes to handle messages:
class MyDeliveredMessagesHandler implements \MYPS\Amio\Webhooks\WebHookHandlerInterface
{

    public function handleWebHook(array $data): void
    {
        // Optionally you can use predefined message object
        $message = \MYPS\Amio\Webhooks\Types\MessagesDelivered::createFromRequest($data);
    }
}

class MyFailedMessageHandler implements \MYPS\Amio\Webhooks\WebHookHandlerInterface
{

    public function handleWebHook(array $data): void
    {
        // Optionally you can use predefined message object
        $message = \MYPS\Amio\Webhooks\Types\MessageFailed::createFromRequest($data);
    }
}

$webhookHandler = new \MYPS\Amio\Webhooks\WebHookHandler($enable, ['{CHANNEL_ID}' => '{SECRET}']);

$webhookHandler->onMessagesDelivered(new MyDeliveredMessagesHandler());
$webhookHandler->onMessageFailed(new MyFailedMessageHandler());

$webhookHandler->handle(file_get_contents('php://input'), getallheaders());