myps/amio-php-sdk

A PHP客户端库,用于访问amio.io API。

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客户端库,实现即时通讯的Amio API

告诉我们如何改进这个库。如果你报告任何问题或甚至创建pull请求,我们将非常高兴。:-)

先决条件

在使用此库之前,请通过 注册Amio 并创建一个频道。

安装

composer require myps/amio-php-sdk

快速入门

发送消息

$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()}";
}

接收消息

// 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());