chibex / ozioma-laminas
Laminas 模块,为 ozioma-php API 客户端库提供包装器。
Requires
- php: ^5.6 || ^7.0
- chibex/ozioma-php: ^1.0.0
This package is auto-updated.
Last update: 2024-09-13 04:46:01 UTC
README
A Laminas PHP 框架/Zend Framework 3 模块,用于 Ozioma API。
要求
- Curl 7.34.0 或更高版本(除非使用 Guzzle)
- PHP 5.4.0 或更高版本
- OpenSSL v1.0.1 或更高版本
安装
OziomaLaminas 的安装使用 composer。有关 composer 文档,请参阅 getcomposer.org。
$ composer require chibex/ozioma-laminas
然后添加 Chibex\Ozioma 到您的 config/modules.config.php
不使用 composer 的安装不受官方支持,需要您安装并自动加载 composer.json 中指定的依赖。
重要
此 Laminas PHP 框架/Zend Framework 3 模块是 Ozioma PHP 库 的包装器
用法
创建 config/autoload/ozioma.global.php,然后将以下代码复制并粘贴到文件中,替换您的访问密钥。有关如何生成项目访问密钥并为其提供资金的指南,请点击此处 点击这里
return [ 'ozioma' => [ 'third-party' => [ 'access-key' => 'YOUR ACCESS KEY HERE', ], ], ];
0. 前提条件
确认您的服务器可以与 Ozioma 的服务器建立 TLSv1.2 连接。大多数最新的软件都有此功能。如果您遇到任何 SSL 错误,请联系您的服务提供商以获得指导。
此模块具有 oziomaClient 控制器插件,可以在控制器中通过 $this->oziomaClient() 访问。此控制器插件将返回实现所有调用 Ozioma API 资源方法的 Chibex\Ozioma\Service\OziomaClientManager 服务实例。
1. 检查您的项目单位余额
请注意,您可以单独为每个项目提供单位,并且当项目单位耗尽时,不会消耗您的主余额。此方法返回提供的项目访问密钥的单位余额。
try { $response = $this->oziomaClient()->getBalance(); var_dump($response); } catch(\Chibex\Ozioma\Exception\ApiException $e){ print_r($e->getResponseObject()); die($e->getMessage()); }
2. 启动发送消息
当您提交要发送的消息时,我们的服务器将消息排队以进行交付,并且在交付后,您的回调 URL 将被调用以通知您的系统/网站您的消息已发送。
try { $response = $this->oziomaClient()->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(\Chibex\Ozioma\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 来检索交付详情。此参数是可选的,如果您不希望收到回调,则可以省略此参数
3. 获取已发送消息的详细信息
当您提交要发送的消息时,将返回一个 ID,您可以使用该 ID 获取消息详情。
try { $response = $this->oziomaClient()->fetchSentMessage($id); var_dump($response); } catch(\Chibex\Ozioma\Exception\ApiException $e){ print_r($e->getResponseObject()); die($e->getMessage()); }
4. 获取已发送消息的额外信息
要获取发送消息的收件人、所收取的单位和使用状态,请使用此方法发送已发送的消息 ID。
try { $response = $this->oziomaClient()->fetchSentMessageExtras($id); var_dump($response); } catch(\Chibex\Ozioma\Exception\ApiException $e){ print_r($e->getResponseObject()); die($e->getMessage()); }
5. 安排消息
大多数参数与上面的send方法相同。在安排消息发送前,您需要包含time_zone_id,调用$this->oziomaClient()->listTimeZones()来获取时区和它们的ID列表。
try { $response = $this->oziomaClient()->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(\Chibex\Ozioma\Exception\ApiException $e){ print_r($e->getResponseObject()); die($e->getMessage()); }
extras接受一组发送时间,如果您希望计划发送的消息在不同时间发送。time_zone_id您可以通过调用我们的时区端点来获取时区列表及其ID。它用于设置您希望计划发送的消息发送到收件人的时区。
7. 将订阅者添加到您的新闻通讯列表
要将您的系统/网站中的订阅者添加到新闻通讯列表中,首先登录到您的Ozioma仪表板并创建新闻通讯列表。接下来调用新闻通讯$this->oziomaClient()->newsletterList();以获取带有ID的列表
try { $response = $this->oziomaClient()->addSubscriber([ 'id' => 2, //sms newsletter id 'name' => 'Chibuike Mba', 'phone_no' => '23470xxxxxxxx']); var_dump($response); } catch(\Chibex\Ozioma\Exception\ApiException $e){ print_r($e->getResponseObject()); die($e->getMessage()); }
9. 将订阅者添加到您的新闻通讯列表
这与添加单个订阅者相同,但在此情况下,您可以一次性添加多个订阅者
try { $response = $this->oziomaClient()->addBulkSubscribers([ 'id' => 2, //sms newsletter id 'subscribers' => [[ 'name' => 'Izuchukwugeme Okafor', 'phone_no' => '23470xxxxxxxx' ],[ 'name' => 'Franklin Nnakwe', 'phone_no' => '23480xxxxxxxx' ]]]); var_dump($response); } catch(\Chibex\Ozioma\Exception\ApiException $e){ print_r($e->getResponseObject()); die($e->getMessage()); }
10. 将生日联系人添加到您的生日组
要将系统/网站中的联系人添加到生日组,首先登录到您的Ozioma仪表板并创建生日组。接下来调用生日$this->oziomaClient()->birthdayGroupList();以获取带有ID的组列表
try { $response = $this->oziomaClient()->addBirthdayContactToGroup([ 'group_id' => 7, //birthday group id 'name' => 'Dennis Okonnachi', 'phone_no' => '23470xxxxxxxx', 'day' => 9, 'month_id' => 1, ]); var_dump($response); } catch(\Chibex\Ozioma\Exception\ApiException $e){ print_r($e->getResponseObject()); die($e->getMessage()); }
12. 将生日联系人添加到您的生日组
这与添加单个联系人相同,但在此情况下,您可以一次性添加多个联系人
try { $response = $this->oziomaClient()->addBulkBirthdayContactsToGroup([ 'group_id' => 7, //birthday group id 'contacts' => [[ 'name' => 'Caleb', 'phone_no' => '23470xxxxxxxx', 'day' => 9, 'month_id' => 1, ]]]); var_dump($response); } catch(\Chibex\Ozioma\Exception\ApiException $e){ print_r($e->getResponseObject()); die($e->getMessage()); }
结束语
目前,我们支持:'message'、'newsletter'、'birthday'、'month'、'balance'和'timezones'。请查看我们的API参考(链接-ozioma-api-reference)以了解支持的方法。要指定参数,请以数组的形式发送。
变更日志
请参阅CHANGELOG以获取最近更改的更多信息。
贡献
请参阅CONTRIBUTING和CONDUCT以获取详细信息。请查看我们的待办事项列表以了解已计划的功能。
安全
如果您发现任何与安全相关的问题,请通过电子邮件chibexme@gmail.com与我们联系,而不是使用问题跟踪器。
致谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。
