enricodias/smsdev

使用SmsDev.com.br发送和接收短信

v0.4 2022-06-01 18:12 UTC

This package is auto-updated.

Last update: 2024-08-26 09:22:40 UTC


README

Build Status Code Coverage Scrutinizer Code Quality Latest version Downloads total License

使用SmsDev.com.br发送和接收短信

安装

在项目的根目录中使用Composer安装此包。

composer require enricodias/smsdev

用法

使用您的API密钥创建一个新的实例

$SmsDev = new \enricodias\SmsDev('API_KEY');

如果没有提供API密钥,库将查找环境变量SMSDEV_API_KEY

设置所有日期方法中使用的日期格式

$SmsDev->setDateFormat('Y-m-d H:i:s'); // default is 'U', timestamp

发送短信消息

$SmsDev->send(5511988881111, 'SMS Message'); // returns true if the API accepts the message

var_dump($SmsDev->getResult()); // Returns the raw API response.

国家代码为可选。默认值为55(巴西)。

电话号码验证

如果您已安装giggsey/libphonenumber-for-php包,它将用于本地验证号码。您可以在发送前使用setNumberValidation方法禁用此功能

$SmsDev->setNumberValidation(false); // disables phone number validation

注意,SmsDev将对发送到无效号码的消息收费。

接收短信消息

获取特定日期间隔内的未读消息

$SmsDev->setDateFormat('Y-m-d');

$SmsDev->setFilter()
            ->isUnread()
            ->dateBetween('2018-01-19', '2019-01-19')
        ->fetch();

搜索特定消息ID

$SmsDev->setFilter()
            ->byId(2515974)
        ->fetch();

解析响应

在获取消息后,您可以使用getResult()访问原始API响应,或使用函数parsedMessages()获取简化的数组

$SmsDev->setDateFormat('U'); // timestamp

$messages = $SmsDev->parsedMessages();

var_dump($messages);

/*
array(1) {
    ['date']    => '1529418914'
    ['number']  => '5511988887777'
    ['message'] => 'Message'
}
*/

日期将转换为setDateFormat()中指定的格式。

日期过滤器

以下过滤器是等效的

$SmsDev->setFilter()
            ->dateBetween('2018-01-19', '2019-01-19')
        ->fetch();

$SmsDev->setFilter()
            ->dateBetween('2018-01-19', '')
            ->dateTo('2019-01-19')
        ->fetch();

$SmsDev->setFilter()
            ->dateBetween('', '2019-01-19')
            ->dateFrom('2018-01-19')
        ->fetch();

$SmsDev->setFilter()
            ->dateFrom('2018-01-19')
            ->dateTo('2019-01-19')
        ->fetch();

时区问题

API使用的是America/Sao_Paulo时区。如果您的应用程序使用另一个时区,则必须在本地上转换日期,以获得正确值。

例如:如果您使用UTC-4,并且收到一条新消息,它看起来像是来自未来的消息,因为America/Sao_Paulo是UTC-3。

此类通过自动在搜索过滤器和解析消息中校正日期来解决此问题。只有原始API响应中的日期不会转换。

待办事项

  • 检查已发送消息的状态。
  • 发送多条短信消息。