ahmedhat / unifonicnextgen
## 获取账号 要开始使用API,您需要向Unifonic发送电子邮件以创建Appsid。
Requires
- php: >=5.4.0
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- apimatic/jsonmapper: ^1.3.1
- apimatic/unirest-php: ^2.0.0
Requires (Dev)
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`目录。
[仅限Windows用户] 在php.ini中配置CURL证书路径
CURL曾经包含一组受信任的CA列表,但不再捆绑任何CA证书。因此,默认情况下,它将拒绝所有SSL证书作为不可验证的。您必须获取您的CA证书,并指向curl。以下是步骤:
- 从https://curl.haxx.se/docs/caextract.html下载证书包(.pem文件)到您的系统。
- 将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的情况。
在PhpStorm中点击`Open
,浏览到生成的SDK目录,然后点击
OK
`。
2. 添加新的测试项目
如下所示,在解决方案名称上右键单击以创建新目录
将目录命名为"test"
将PHP文件添加到本项目中
将其命名为 "testSDK"
根据您的项目设置,您可能需要在PHP代码中包含composer的自动加载器,以启用类的自动加载。
require_once "../vendor/autoload.php";
确保require_once中的路径正确指向在依赖项安装过程中创建的vendor目录中的autoload.php文件。
之后,您可以添加代码来初始化客户端库并获取Controller类实例。下一节将给出初始化客户端库和使用控制器方法的示例代码。
3. 运行测试项目
要运行您的项目,您必须设置项目的解释器。解释器是您计算机上安装的PHP引擎。
从菜单打开 Settings
-> File
在 Languages & Frameworks
中选择 PHP
在 Interpreter
附近浏览解释器并选择您的解释器。
选择解释器后,点击 OK
要运行您的项目,在Test项目中的PHP文件上右键单击,然后点击 Run
如何测试
此SDK中的单元测试可以使用PHPUnit运行。
- 首先使用composer安装依赖项,包括
require-dev
依赖项。 - 从命令行运行
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);
类参考
控制器列表
WrapperController
获取单例实例
可以通过API客户端访问WrapperController
类的单例实例。
$wrapper = $client->getWrapper();
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 |
432 | MessageId必须是数字 |
452 | 用户必须指定messageId或recipient参数 |
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 | 消息体为空 |
451 | timeScheduled参数必须指示未来的时间 |
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 | 身份验证失败 |
432 | MessageId必须是数字 |
599 | 请求失败 |