kemonai / zigatext-php
Zigatext PHP 库,用于向 Zigatext 云消息平台发起 API 调用,以进行生日联系人短信订阅以及更多功能。
Requires (Dev)
- guzzlehttp/guzzle: ^6.2
- phpunit/phpunit: ~5.3
- scrutinizer/ocular: ^1.1
- squizlabs/php_codesniffer: ^2.3
- vlucas/phpdotenv: ^2.2
README
这是 Zigatext 的 PHP API 包装器。这个库可以帮助你轻松地将 Zigatext 消息平台集成到你的 PHP 项目中。
要求
- Curl 7.34.0 或更高版本(除非使用 Guzzle)
- PHP 5.4.0 或更高版本
- OpenSSL v1.0.1 或更高版本
安装
通过 Composer
$ composer require kemonai/zigatext-php
通过下载
从发布页面下载一个版本。解压缩后
require 'path/to/src/autoload.php';
重要
这是 Zigatext API 版本 1 的第一个实现。
使用方法
实例化 Zigatext 类并将你的 ACCESS-KEY 作为参数传递给构造函数。然后你可以开始调用资源方法来满足你的请求
0. 前提条件
确认你的服务器可以与 Zigatext 服务器建立 TLSv1.2 连接。大多数最新的软件都具备这个功能。如果你有任何 SSL 错误,请联系你的服务提供商以获取指导。
1. 启动发送消息
当你提交消息以发送时,我们的服务器将消息排队以供投递,投递后,你的回调 URL 会被调用以通知你的系统/网站你的消息已发送。
$zigatext = new Kemonai\Zigatext(ACCESS-KEY); try { $response = $zigatext->message->send(['sender' => 'php lib', 'message' => 'it is awesome', 'recipients' => '23470xxxxxxxx', 'use_corporate_route' => true, // [true or false] 'callback_url' => 'http://your-website/your-callback-url', ]); var_dump($response); } catch(\Kemonai\Zigatext\Exception\ApiException $e){ print_r($e->getResponseObject()); die($e->getMessage()); }
send 方法参数
sender是你消息的自定义名称/标题,不应超过 11 个字符(空格也算作一个字符)recipients是你发送消息的电话号码message是你想要发送给接收者的内容use_corporate_route可以是 true 或 false。值 'true' 表示你希望你的消息发送到具有 dnd 政策的国家的勿扰 (DND) 电话号码callback_url当你提交消息以发送时,我们的服务器将消息排队以供投递,投递后,你的回调 URL 会被调用以通知你的系统/网站你的消息已发送。然后你可以使用作为查询字符串传递的消息 ID 来检索投递详情。如果不想接收回调,此参数是可选的。
2. 安排消息
大多数参数与上面的 send 方法相同。在安排消息之前,你需要包含 time_zone_id,调用 $zigatext->timezone->list(); 获取时区列表及其 ID。
$zigatext = new Kemonai\Zigatext(ACCESS-KEY); try { $response = $zigatext->message->schedule(['sender' => 'php lib', 'message' => 'it is awesome', 'recipients' => '23470xxxxxxxx', 'use_corporate_route' => true, 'callback_url' => 'http://your-website/your-callback-url', 'extras' => [[ 'deliver_at' => '2019-07-23 10:10', 'time_zone_id' => 2, ]]]); var_dump($response); } catch(\Kemonai\Zigatext\Exception\ApiException $e){ print_r($e->getResponseObject()); die($e->getMessage()); }
extras接受包含投递时间的数组,如果想要你的安排消息在不同时间投递。time_zone_id你可以调用我们的时区端点以获取时区列表及其 ID。它用于设置你的安排消息将投递给接收者的时区。
3. 将订阅者添加到你的新闻通讯列表
要将你的系统/网站中的订阅者添加到新闻通讯列表,首先登录到你的 Zigatext 控制台并创建新闻通讯列表。接下来调用新闻通讯 $zigatext->newsletter->list(); 以获取列表及其 ID。
$zigatext = new Kemonai\Zigatext(ACCESS-KEY); try { $response = $zigatext->newsletter->addSubscriber([ 'id' => 2, //sms newsletter id 'name' => 'Chibuike Mba', 'phone_no' => '23470xxxxxxxx']); var_dump($response); } catch(\Kemonai\Zigatext\Exception\ApiException $e){ print_r($e->getResponseObject()); die($e->getMessage()); }
4. 将订阅者添加到你的新闻通讯列表
这与添加单个订阅者相同,但在这个案例中,你一次添加多个订阅者。
$zigatext = new Kemonai\Zigatext(ACCESS-KEY); try { $response = $zigatext->newsletter->addBulkSubscribers([ 'id' => 2, //sms newsletter id 'subscribers' => [ [ 'name' => 'Benjamin Akawu', 'phone_no' => '23470xxxxxxxx' ], [ 'name' => 'Franklin Nnakwe', 'phone_no' => '23480xxxxxxxx' ] ] ]); var_dump($response); } catch(\Kemonai\Zigatext\Exception\ApiException $e){ print_r($e->getResponseObject()); die($e->getMessage()); }
将生日联系人添加到你的生日组
要将你的系统/网站中的联系人添加到生日组,首先登录到你的 Zigatext 控制台并创建生日组。接下来调用生日 $zigatext->birthday->getGroupList(); 以获取组及其 ID,以及 $zigatext->month->list(); 以获取月份 ID。
$zigatext = new Kemonai\Zigatext(ACCESS-KEY); try { $response = $zigatext->birthday->addContactToGroup([ 'group_id' => 7, 'name' => 'Dennis Okonnachi', 'phone_no' => '23470xxxxxxxx', 'day' => 9, 'month_id' => 1, ]); var_dump($response); } catch(\Kemonai\Zigatext\Exception\ApiException $e){ print_r($e->getResponseObject()); die($e->getMessage()); }
6. 将生日联系人添加到你的生日组
这和添加单个联系人的操作相同,但在这个情况下,您一次可以添加多个联系人。
$zigatext = new Kemonai\Zigatext(ACCESS-KEY); try { $response = $zigatext->birthday->addBulkContactsToGroup([ 'group_id' => 7, 'contacts' => [ [ 'name' => 'Caleb Uche', 'phone_no' => '23470xxxxxxxx', 'day' => 9, 'month_id' => 1, ], [ 'name' => 'Bernard Inyang', 'phone_no' => '23480xxxxxxxx', 'day' => 19, 'month_id' => 3, ] ] ]); var_dump($response); } catch(\Kemonai\Zigatext\Exception\ApiException $e){ print_r($e->getResponseObject()); die($e->getMessage()); }
7. 结束语
通常,在构建 Zigatext 对象后进行 API 请求,通过调用资源/方法来完成:$zigatext->{resource}->{method}();对于获取操作,使用 $zigatext->{resource}(id),列出资源使用:$zigatext->{resource}s()。
目前,我们支持:'message'、'newsletter'、'birthday'、'month'、'balance' 和 'timezones'。查看我们的 API 参考([链接-Zigatext API 参考][链接-Zigatext API 参考])以获取支持的函数。要指定参数,以数组形式发送。
查看SAMPLES以获取更多示例调用。
MetadataBuilder
此类帮助您构建在发送交易请求时需要发送的有效 JSON 元数据字符串。
$builder = new MetadataBuilder();
添加元数据
要关闭键名的自动蛇形转换,请在开始添加元数据到 $builder 之前执行以下操作:
MetadataBuilder::$auto_snake_case = false;
构建 JSON
最后调用 build() 以获取您的 JSON 元数据字符串。
变更日志
请参阅CHANGELOG 以获取最近更改的更多信息。
测试
$ composer test
贡献
请参阅CONTRIBUTING 和 CONDUCT 以获取详细信息。查看我们的待办事项列表以获取已打算实现的功能。
安全
如果您发现任何与安全相关的问题,请通过电子邮件 chibexme@gmail.com 而不是使用问题跟踪器来报告。
致谢
- Kemonai Technologies
- Chibuike Mba
- Caleb Uche
- Yabaconn - 模仿他在创建 Paystack PHP Wrapper 时所采用的风格。
- 所有贡献者
许可证
MIT 许可证 (MIT)。请参阅许可证文件以获取更多信息。
