chibex/ozioma-laminas

Laminas 模块,为 ozioma-php API 客户端库提供包装器。

v1.0.1 2020-03-12 16:44 UTC

This package is auto-updated.

Last update: 2024-09-13 04:46:01 UTC


README

Latest Version on Packagist Software License Total Downloads

A Laminas PHP 框架/Zend Framework 3 模块,用于 Ozioma API。

Ozioma

要求

  • 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以获取最近更改的更多信息。

贡献

请参阅CONTRIBUTINGCONDUCT以获取详细信息。请查看我们的待办事项列表以了解已计划的功能。

安全

如果您发现任何与安全相关的问题,请通过电子邮件chibexme@gmail.com与我们联系,而不是使用问题跟踪器。

致谢

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件