enricodias / smsdev
使用SmsDev.com.br发送和接收短信
v0.4
2022-06-01 18:12 UTC
Requires
- php: >=5.6
- guzzlehttp/guzzle: ^6.4 || ^7.4
Requires (Dev)
- phpunit/phpunit: >5.7 <9
- scrutinizer/ocular: ^1.6
Suggests
- giggsey/libphonenumber-for-php: Allows phone number verification
This package is auto-updated.
Last update: 2024-08-26 09:22:40 UTC
README
使用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响应中的日期不会转换。
待办事项
- 检查已发送消息的状态。
- 发送多条短信消息。