ahmedhat/unifonicnextgen

## 获取账号 要开始使用API,您需要向Unifonic发送电子邮件以创建Appsid。

dev-master 2021-04-29 11:03 UTC

This package is not auto-updated.

Last update: 2024-09-28 02:14:12 UTC


README

简介

使用Unifonic消息API发送短信。获取您的专用通用号码,并开始发送短信。

Unifonic NextGen Restful和HTTP API 使用基本认证协议。所有请求和响应体都采用JSON格式。

获取账号

要开始使用API,您需要向Unifonic发送电子邮件以创建Appsid。

基本URL

文档中引用的所有URL都具有以下基本URL

basic.unifonic.com

安全性

为确保隐私,我们建议您对所有Unifonic API请求使用HTTPS。您可以下载我们的HTTPS证书。

[下载] (https://api.unifonic.com/udm/https.zip)

格式

Unifonic API仅支持JSON格式。所有请求都必须使用Content-type头设置为application/json。

支持

我们在这里帮助您!通过support@unifonic.com联系支持,我们会尽快回复您,或者您可以通过我们的[网站](www.unifonic.com)上的实时聊天与我们联系。

如何构建

生成的代码依赖于外部库,如UniRest。这些依赖关系定义在SDK附带的自定义`composer.json`文件中。为了解决这些依赖关系,我们使用Composer包管理器,它需要在您的系统上安装PHP大于5.3.2。访问[https://getcomposer.org.cn/download/](https://getcomposer.org.cn/download/)下载Composer安装文件,并在您的系统上运行它。打开命令提示符并输入`composer --version`。如果安装成功,应显示已安装的Composer当前版本。

  • 使用命令行,导航到包含生成的文件(包括`composer.json`)的SDK目录。
  • 运行命令`composer install`。这将安装所有必需的依赖关系,并在您的项目目录中创建`vendor`目录。

Building SDK - Step 1

[仅限Windows用户] 在php.ini中配置CURL证书路径

CURL曾经包含一组受信任的CA列表,但不再捆绑任何CA证书。因此,默认情况下,它将拒绝所有SSL证书作为不可验证的。您必须获取您的CA证书,并指向curl。以下是步骤:

  1. https://curl.haxx.se/docs/caextract.html下载证书包(.pem文件)到您的系统。
  2. 将curl.cainfo = "PATH_TO/cacert.pem"添加到您的php.ini文件中,该文件位于您的php安装中。"PATH_TO"必须是一个包含.pem文件的绝对路径。
[curl]
; A default value for the CURLOPT_CAINFO option. This is required to be an
; absolute path.
;curl.cainfo =

如何使用

以下部分解释了如何在新的项目中使用UnifonicNextGen库。

1. 在IDE中打开项目

打开PHP的IDE,如PhpStorm。这里呈现的基本工作流程也适用于您更喜欢使用不同的编辑器或IDE的情况。

Open project in PHPStorm - Step 1

在PhpStorm中点击`Open,浏览到生成的SDK目录,然后点击OK`。

Open project in PHPStorm - Step 2

2. 添加新的测试项目

如下所示,在解决方案名称上右键单击以创建新目录

Add a new project in PHPStorm - Step 1

将目录命名为"test"

Add a new project in PHPStorm - Step 2

将PHP文件添加到本项目中

Add a new project in PHPStorm - Step 3

将其命名为 "testSDK"

Add a new project in PHPStorm - Step 4

根据您的项目设置,您可能需要在PHP代码中包含composer的自动加载器,以启用类的自动加载。

require_once "../vendor/autoload.php";

确保require_once中的路径正确指向在依赖项安装过程中创建的vendor目录中的autoload.php文件。

Add a new project in PHPStorm - Step 4

之后,您可以添加代码来初始化客户端库并获取Controller类实例。下一节将给出初始化客户端库和使用控制器方法的示例代码。

3. 运行测试项目

要运行您的项目,您必须设置项目的解释器。解释器是您计算机上安装的PHP引擎。

从菜单打开 Settings -> File

Run Test Project - Step 1

Languages & Frameworks 中选择 PHP

Run Test Project - Step 2

Interpreter 附近浏览解释器并选择您的解释器。

Run Test Project - Step 3

选择解释器后,点击 OK

Run Test Project - Step 4

要运行您的项目,在Test项目中的PHP文件上右键单击,然后点击 Run

Run Test Project - Step 5

如何测试

此SDK中的单元测试可以使用PHPUnit运行。

  1. 首先使用composer安装依赖项,包括require-dev依赖项。
  2. 从命令行运行vendor\bin\phpunit --verbose以执行测试。如果您已全局安装PHPUnit,请使用phpunit --verbose运行测试。

您可以在phpunit.xml文件中更改PHPUnit测试配置。

初始化

身份验证

为了设置身份验证和API客户端的初始化,您需要以下信息。

参数描述
basicAuthUserName用于基本身份验证的用户名
basicAuthPassword用于基本身份验证的密码

API客户端可以按照以下方式初始化。

$basicAuthUserName = 'basicAuthUserName'; // The username to use with basic authentication
$basicAuthPassword = 'basicAuthPassword'; // The password to use with basic authentication

$client = new UnifonicNextGenLib\UnifonicNextGenClient($basicAuthUserName, $basicAuthPassword);

类参考

控制器列表

Class: WrapperController

获取单例实例

可以通过API客户端访问WrapperController类的单例实例。

$wrapper = $client->getWrapper();

Method: createGetMsgQuery

Unifonic Get message query API允许您获取指定消息的详细信息。

function createGetMsgQuery(
        $appsid,
        $msgid,
        $to = null)

参数

参数标签描述
appsid必需一个字符串,唯一标识您的应用程序
msgid必需标识消息的唯一ID
to可选目标手机号码,手机号码必须以国际格式表示,不带00或+,例如:(4452023498)

示例用法

$appsid = '6v253153s1g7831s5';
$msgid = 3200017891630;
$to = 966505980169;

$result = $wrapper->createGetMsgQuery($appsid, $msgid, $to);

错误

错误代码错误描述
401身份验证失败
402缺少参数AppSid
432MessageId必须是数字
452用户必须指定messageId或recipient参数

Method: createSendMessage

Unifonic Send Wrapper API允许您同时向多个用户发送文本消息。

function createSendMessage(
        $appsid,
        $msg,
        $to,
        $sender,
        $baseEncode = false,
        $encoding = 'UCS2')

参数

参数标签描述
appsid必需一个字符串,唯一标识您的应用程序
msg必需消息正文支持英语和Unicode字符,支持连接消息
to必需目标手机号码,手机号码必须以国际格式表示,不带00或+,例如:(4452023498)
sender必需发送消息的发送者ID,除非另有说明,否则使用应用程序默认的发送者ID
baseEncode可选 默认值将二进制数据表示为ASCII字符串格式的二进制到文本编码方案
encoding可选 默认值将信息从源转换为用于通信或存储的符号,GSM7用于英语,UCS2用于阿拉伯语

示例用法

$appsid = '6v253153s1g7831s5';
$msg = 'Test';
$to = 966505980169;
$sender = 'sender';
$baseEncode = false;
$encoding = 'UCS2';

$result = $wrapper->createSendMessage($appsid, $msg, $to, $sender, $baseEncode, $encoding);

错误

错误代码错误描述
401身份验证失败
402缺少参数AppSid
459认证参数的base64编码不正确

返回控制器列表

类: RestController

获取单例实例

可以通过API客户端访问RestController类的单例实例。

$rest = $client->getRest();

方法: createSendScheduledMessages

Unifonic Send Scheduled API允许您通过简单的RESTful API将文本消息安排在将来发送给全球用户。

function createSendScheduledMessages(
        $appSid,
        $senderID,
        $recipient,
        $body,
        $timeScheduled,
        $responseType = null,
        $correlationID = null,
        $baseEncode = null)

参数

参数标签描述
appSid必需一个字符串,唯一标识您的应用程序
senderID必需发送消息的发送者ID,除非另有说明,否则使用应用程序默认的发送者ID
recipient必需目标手机号码,手机号码必须以国际格式表示,不带00或+,例如:(4452023498)
body必需消息正文支持英语和Unicode字符,支持连接消息
timeScheduled必需安排发送消息,格式如下:yyyy-mm-dd HH:mm:ss
responseType可选仅支持json格式
correlationID可选是一个唯一的标识符值,它附加到请求和消息上
baseEncode可选将二进制数据表示为ASCII字符串格式的二进制到文本编码方案

示例用法

$appSid = '6v253153s1g7831s5';
$senderID = 'sender';
$recipient = 966505980169;
$body = 'Test';
$timeScheduled = 2020-04-12 11:50:00;
$responseType = 'responseType';
$correlationID = 'CorrelationID';
$baseEncode = true;

$result = $rest->createSendScheduledMessages($appSid, $senderID, $recipient, $body, $timeScheduled, $responseType, $correlationID, $baseEncode);

错误

错误代码错误描述
401身份验证失败
406参数格式错误
449消息体为空
451timeScheduled参数必须指示未来的时间
480此用户不能使用指定的SenderID
482无效的目标号码

方法: createSendMessage

Unifonic Send API允许您通过简单的RESTful API将文本消息发送给全球用户。

function createSendMessage(
        $appSid,
        $senderID,
        $body,
        $recipient,
        $responseType = null,
        $correlationID = null,
        $baseEncode = null,
        $statusCallback = null,
        $async = false)

参数

参数标签描述
appSid必需一个字符串,唯一标识您的应用程序
senderID必需发送消息的发送者ID,除非另有说明,否则使用应用程序默认的发送者ID
body必需消息正文支持英语和Unicode字符,支持连接消息
recipient必需目标手机号码,手机号码必须以国际格式表示,不带00或+,例如:(4452023498)
responseType可选仅支持json格式
correlationID可选是一个唯一的标识符值,它附加到请求和消息上
baseEncode可选将二进制数据表示为ASCII字符串格式的二进制到文本编码方案
statusCallback可选根据特定的消息状态(“已发送”、“排队”、“拒绝”或“失败”)过滤消息报告
async可选 默认值指定请求将发送后立即异步执行

示例用法

$appSid = '6v253153s1g7831s5';
$senderID = 'sender';
$body = 'Test';
$recipient = 966505980169;
$responseType = 'responseType';
$correlationID = 'CorrelationID';
$baseEncode = true;
$statusCallback = 'statusCallback';
$async = false;

$result = $rest->createSendMessage($appSid, $senderID, $body, $recipient, $responseType, $correlationID, $baseEncode, $statusCallback, $async);

错误

错误代码错误描述
401身份验证失败
449消息体为空
480此用户不能使用指定的SenderID
482无效的目标号码

方法: getScheduledMessageDetails

Unifonic Scheduled message details允许您通过简单的RESTful API获取安排的消息详情。

function getScheduledMessageDetails($appSid)

参数

参数标签描述
appSid必需一个字符串,唯一标识您的应用程序

示例用法

$appSid = '6v253153s1g7831s5';

$result = $rest->getScheduledMessageDetails($appSid);

错误

错误代码错误描述
401身份验证失败

方法: deleteStopScheduledMessages

Unifonic Stop scheduled messages API允许您通过简单的RESTful API删除(停止)安排的消息。如果指定了MessageID,则仅停止一条消息,否则通过简单的RESTful API停止所有消息。

function deleteStopScheduledMessages(
        $appSid,
        $messageID = null,
        $responseFormat = null,
        $baseEncode = null)

参数

参数标签描述
appSid必需一个字符串,唯一标识您的应用程序
messageID可选标识消息的唯一ID
responseFormat可选仅支持json格式
baseEncode可选将二进制数据表示为ASCII字符串格式的二进制到文本编码方案

示例用法

$appSid = '6v253153s1g7831s5';
$messageID = 3200017889502;
$responseFormat = 'responseFormat';
$baseEncode = true;

$result = $rest->deleteStopScheduledMessages($appSid, $messageID, $responseFormat, $baseEncode);

错误

错误代码错误描述
401身份验证失败
455对于此用户未找到安排的消息

方法: createGetMessageDetails

Unifonic Get message details API允许您通过简单的RESTful API获取消息的详细信息,可选的过滤器返回分页的消息,下一页或前一页。

function createGetMessageDetails(
        $appSid,
        $messageID = null,
        $senderID = null,
        $recipient = null,
        $dateFrom = null,
        $dateTo = null,
        $correlationID = null,
        $limit = null,
        $baseEncode = null)

参数

参数标签描述
appSid必需一个字符串,唯一标识您的应用程序
messageID可选标识消息的唯一ID
senderID可选发送消息的发送者ID,除非另有说明,否则使用应用程序默认的发送者ID
recipient可选目标手机号码,手机号码必须以国际格式表示,不带00或+,例如:(4452023498)
dateFrom可选报告时间间隔的开始日期,日期格式应为yyyy-mm-dd
dateTo可选报告时间间隔的结束日期,日期格式应为yyyy-mm-dd
correlationID可选是一个唯一的标识符值,它附加到请求和消息上
limit可选消息详细信息的最大数量
baseEncode可选将二进制数据表示为ASCII字符串格式的二进制到文本编码方案

示例用法

$appSid = '6v253153s1g7831s5';
$messageID = 2000000172800;
$senderID = 'sender';
$recipient = 966505980169;
$dateFrom = 2018-04-12;
$dateTo = 2018-09-12;
$correlationID = 'CorrelationID';
$limit = 20;
$baseEncode = true;

$result = $rest->createGetMessageDetails($appSid, $messageID, $senderID, $recipient, $dateFrom, $dateTo, $correlationID, $limit, $baseEncode);

错误

错误代码错误描述
401身份验证失败
432MessageId必须是数字
599请求失败

返回控制器列表