andreshg112/hablame-sms

用于与Háblame哥伦比亚的SMS API通信的客户端。

v1.0.1 2020-05-25 01:51 UTC

This package is auto-updated.

Last update: 2024-09-09 12:20:16 UTC


README

Latest Version on Packagist Build Status StyleCI Quality Score Code Coverage Maintainability Total Downloads

此包简化了与Háblame SMS API的连接,以发送短信和查询余额。此外,它还允许通过Laravel的通知系统发送短信通知。

要求

  • PHP >= 7.1
  • Laravel >= 5.3(如果使用外观或通知通道则必需)。

安装

您可以通过composer安装此包。

composer require andreshg112/hablame-sms

使用

/**
 * Crear instancia.
 *
 * $client: Número de cliente.
 * $api: Clave de la API.
 * $guzzle: [opcional] Sirve para pasar un cliente de Guzzle (\GuzzleHttp\Client) configurado,
 * por ejemplo, en pruebas unitarias.
 */
$hablame = new \Andreshg112\HablameSms\Client($client, $api, $guzzle);

/**
 * Consultar saldo.
 *
 * Retorna un array con la respuesta del servidor de Háblame.
 */
$response = $hablame->checkBalance();

/**
 * Enviar mensaje.
 *
 * $phoneNumbers: Número(s) telefónico(s) separados por coma.
 * $sms: Cuerpo del mensaje.
 * $datetime: [opcional] Fecha a enviar el mensaje. Formato en PHP: 'Y-m-d H:i:s'
 * $referencia: [opcional] Nombre de campaña.
 *
 * Retorna un array con la respuesta del servidor de Háblame.
 */
$response = $hablame->sendMessage($phoneNumbers, $sms, $datetime, $reference);

Laravel

外观和别名

在Laravel中,您可以使用外观或别名来执行上述功能。首先,您需要将Háblame的凭证添加到config/services.php中,如下所示:

return [
    // ...
    'hablame_sms' => [
        'api' => env('HABLAME_API', ''),
        'cliente' => env('HABLAME_CLIENTE', ''),

        /**
         * Si deseas agregar tu propio cliente de Guzzle, en vez de usar uno por defecto,
         * haz que el callback retorne el respectivo cliente.
         * Si quieres usar uno por defecto, quita este parámetro o asígnalo null.
         */
        'guzzle' => function (): \GuzzleHttp\Client {
            return createHttpClient(logger());
        },
    ],
    // ...
];

现在您可以这样做:

$response = \Andreshg112\HablameSms\Facade::checkBalance();

$response = \Andreshg112\HablameSms\Facade::sendMessage($phoneNumbers, $sms, $datetime, $reference);

// o

$response = \Hablame::checkBalance();

$response = \Hablame::sendMessage($phoneNumbers, $sms, $datetime, $reference);

如果您使用的是Laravel < 5.5,则必须将\Andreshg112\HablameSms\HablameSmsServiceProvider::class添加到config/app.php中的providers数组中。

通知

您可以使用Laravel内建的通知系统来发送通知,该系统简化了流程并组织了代码。请注意,在使用此功能之前,您需要了解如何实现Laravel通知

在您的通知中,将HablameChannel::class添加到返回via()函数的数组中。

use Andreshg112\HablameSms\HablameChannel;

public function via($notifiable)
{
    return [HablameChannel::class];
}

然后,在您的类中创建一个名为toHablameNotification()的方法

use Andreshg112\HablameSms\HablameMessage;

public function toHablameNotification($notifiable)
{
    return (new HablameMessage)
        ->phoneNumbers($phoneNumbers)
        ->sms($sms)
        ->datetime($datetime)
        ->reference($reference);

    // o

    return new HablameMessage($phoneNumbers, $sms, $datetime, $reference);
}

测试

composer test

变更记录

请查看版本历史以获取有关最近更改的更多信息。

贡献

请查看贡献指南(英文)以获取详细信息。

安全

如果您发现任何漏洞,请通过andreshg112@gmail.com与我联系,而不是使用GitHub问题跟踪

致谢

许可证

MIT许可证。请查看许可证文件以获取更多信息。

PHP包模板

此包是使用PHP包模板生成的。