chibex / ozioma-php

Ozioma for PHP库帮助您调用Ozioma云消息和通信平台,用于生日联系人短信和短信新闻订阅的API调用。

v1.0.1 2020-03-10 18:18 UTC

This package is auto-updated.

Last update: 2024-09-11 21:20:22 UTC


README

Latest Version on Packagist Software License Total Downloads

A PHP API wrapper for Ozioma.

Ozioma

要求

  • Curl 7.34.0或更高版本(除非使用Guzzle)
  • PHP 5.4.0或更高版本
  • OpenSSL v1.0.1或更高版本

安装

通过Composer

    $ composer require chibex/ozioma-php

通过下载

发布页面下载一个版本。解压缩后

    require 'path/to/src/autoload.php';

重要

这是Ozioma API版本2的第一个实现。

用法

实例化Ozioma类,并将您的ACCESS-KEY作为参数传递给构造函数。然后您可以通过调用资源方法来满足您的请求

0. 前提条件

确认您的服务器可以与Ozioma的服务器建立TLSv1.2连接。大多数最新的软件都有这个功能。如果您有任何SSL错误,请联系您的服务提供商以获取指导。

1. 启动发送消息

当您提交消息以发送时,我们的服务器将消息排队以供交付,并在交付后调用您的回调URL以通知您的系统/网站您的消息已发送。

    $ozioma = new Chibex\Ozioma(ACCESS-KEY);
    try
    {
        $response = $ozioma->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(\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检索交付详情。如果不想接收回调,此参数是可选的

2. 安排消息

大多数参数与上面的send方法相同。在安排消息之前,您需要包括time_zone_id,调用$ozioma->timezone->list();以获取时区和它们的ID列表。

    $ozioma = new Chibex\Ozioma(ACCESS-KEY);
    try
    {
        $response = $ozioma->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(\Chibex\Ozioma\Exception\ApiException $e){
        print_r($e->getResponseObject());
        die($e->getMessage());
    }
  • extras接受一个包含交付时间的数组,如果您希望安排的消息在不同的时间交付。
  • time_zone_id您可以通过我们的时区端点获取时区及其ID的列表。它用于设置您希望安排的消息交付给收件人的时区

3. 将订阅者添加到您的新闻通讯列表

要将系统/网站中的订阅者添加到您的新闻通讯列表,首先登录到您的Ozioma仪表板并创建新闻通讯列表。然后调用新闻通讯$ozioma->newsletter->list();以获取包含它们的ID的列表

    $ozioma = new Chibex\Ozioma(ACCESS-KEY);
    try
    {
        $response =  $ozioma->newsletter->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());
    }

4. 将订阅者添加到您的新闻通讯列表

这与添加单个订阅者相同,但在此情况下,您可以一次性添加多个订阅者

    $ozioma = new Chibex\Ozioma(ACCESS-KEY);
    try
    {
        $response =  $ozioma->newsletter->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());
    }

5. 将生日联系人添加到您的生日组

要将系统/网站中的联系人添加到您的生日组,首先登录到您的Ozioma仪表板并创建生日组。接下来,调用$ozioma->birthday->getGroupList();以获取您的组及其ID,以及调用$ozioma->month->list();以获取月份ID。

    $ozioma = new Chibex\Ozioma(ACCESS-KEY);
    try
    {
        $response =  $ozioma->birthday->addContactToGroup([
                                        'group_id' => 7,
                                        '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());
    }

6. 将生日联系人添加到生日组

这与添加单个联系人的操作相同,但在此情况下,您可以一次性添加多个联系人。

    $ozioma = new Chibex\Ozioma(ACCESS-KEY);
    try
    {
        $response =  $ozioma->birthday->addBulkContactsToGroup([
                                        'group_id' => 7,
                                        '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());
    }

7. 结束语

通常,在构建ozioma对象后进行API请求,请按以下方式调用资源/方法:$ozioma->{resource}->{method}();对于获取,使用$ozioma->{resource}(id),并列出资源使用$ozioma->{resource}s()

目前,我们支持:'message'、'newsletter'、'birthday'、'month'、'balance'和'timezones'。查看我们的API参考(链接-ozioma-api-reference)以获取支持的函数。要指定参数,请发送数组。

查看更多示例调用,请参考SAMPLES

MetadataBuilder

此类帮助您构建在执行交易请求时发送的有效JSON元数据字符串。

    $builder = new MetadataBuilder();

添加元数据

要关闭自动将键名转换为snake_case,请在

    MetadataBuilder::$auto_snake_case = false;

开始向$builder添加元数据之前执行。

构建JSON

最后调用build()以获取您的JSON元数据字符串。

变更日志

有关最近更改的更多信息,请参阅CHANGELOG

测试

    $ composer test

贡献

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

安全

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

致谢

许可

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