messagemedia/messages-sdk

MessageMedia Messages API 提供了多个端点,用于构建强大的双向消息应用程序。

2.1.0 2023-05-08 05:04 UTC

This package is auto-updated.

Last update: 2024-09-08 10:24:04 UTC


README

Pull Requests Welcome HitCount composer

MessageMedia Messages API 提供了多个端点,用于构建强大的双向消息应用程序。

Isometric

目录

🔐 身份验证

身份验证通过 API 密钥完成。请前往 https://hub.messagemedia.com/register 注册以获取您的 API 密钥。

请求通过 HTTP Basic Auth 或 HMAC 进行身份验证。对于 Basic Auth,您的 API 密钥将是 basicAuthUserName,API 密码将是 basicAuthPassword。对于 HMAC,您的 API 密钥将是 hmacAuthUserName,API 密码将是 hmacAuthPassword。以下 发送 SMS 示例 中进行了演示。

⁉️ 错误

我们的 API 返回标准的 HTTP 成功或错误状态码。对于错误,我们还会在响应中包含有关错误信息的额外信息,以 JSON 格式编码。以下列出了最常见的状态码。

HTTP 状态码

📰 信息

邮件列表

如果您有任何问题、评论或关注事项,请通过以下邮箱联系我们: developers@messagemedia.com

错误报告

如果您发现 SDK 中存在问题,我们希望了解情况。您可以通过 问题 提出或发送邮件至: developers@messagemedia.com

贡献

我们欢迎您就我们如何最好地为您提供 SDK 以简化您在应用程序中使用我们的服务提出意见。您可以 提出问题 或为任何您希望看到的特性创建拉取请求。请注意,大量文件是由我们的后端工具自动生成的。

⭐ 安装

运行 Composer 命令以安装 Messages SDK 的最新稳定版本

composer require messagemedia/messages-sdk

🎬 开始使用

开始使用很简单。只需将您从 MessageMedia 开发者门户 获得的 API 密钥和密码以及您希望发送短信的移动号码输入到以下代码片段中。

发送 SMS

目标号码(destinationNumber)应采用 E.164 格式。例如,+61491570156 NOT 0491570156。以下代码片段仅包含发送消息所需的最基本参数。您可以在 此处 查看参数的完整列表。或者,您可以参考具有所有参数的 代码片段。

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

use MessageMediaMessagesLib\Models;
use MessageMediaMessagesLib\Exceptions;

$authUserName = 'API_KEY';
$authPassword = 'API_SECRET';
/* You can change this to true when the above keys are HMAC */
$useHmacAuthentication = false;

$client = new MessageMediaMessagesLib\MessageMediaMessagesClient($authUserName, $authPassword, $useHmacAuthentication);

$messagesController = $client->getMessages();

$body = new Models\SendMessagesRequest;
$body->messages = array();

$body->messages[0] = new Models\Message;
$body->messages[0]->content = 'My first message';
$body->messages[0]->destinationNumber = '+61491570156';

try {
    $result = $messagesController->sendMessages($body);
    print_r($result);
} catch (Exceptions\SendMessages400Response $e) {
    echo 'Caught SendMessages400Response: ',  $e->getMessage(), "\n";
} catch (MessageMediaMessagesLib\APIException $e) {
    echo 'Caught APIException: ',  $e->getMessage(), "\n";
}
?>

发送 MMS

目标号码(destinationNumber)应使用E.164格式。例如,+61491570156 NOT 0491570156。下面的代码片段只包含了发送消息所需的最小参数。您可以在这里查看参数的完整列表。或者,您也可以查看使用所有参数的代码片段。

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

use MessageMediaMessagesLib\Models;
use MessageMediaMessagesLib\Exceptions;

$authUserName = 'API_KEY';
$authPassword = 'API_SECRET';
/* You can change this to true when the above keys are HMAC */
$useHmacAuthentication = false;

$client = new MessageMediaMessagesLib\MessageMediaMessagesClient($authUserName, $authPassword, $useHmacAuthentication);

$messagesController = $client->getMessages();

$body = new Models\SendMessagesRequest;
$body->messages = array();
$body->messages[0] = new Models\Message;
$body->messages[0]->content = 'My second message';
$body->messages[0]->destinationNumber = '+61491570156';
$body->messages[0]->format = Models\FormatEnum::MMS;
$body->messages[0]->media = array('https://images.pexels.com/photos/1018350/pexels-photo-1018350.jpeg?cs=srgb&dl=architecture-buildings-city-1018350.jpg');
$body->messages[0]->subject = 'This is an MMS message';

try {
    $result = $messagesController->sendMessages($body);
    print_r($result);
} catch (Exceptions\SendMessages400Response $e) {
    echo 'Caught SendMessages400Response: ',  $e->getMessage(), "\n";
} catch (MessageMediaMessagesLib\APIException $e) {
    echo 'Caught APIException: ',  $e->getMessage(), "\n";
}
?>

获取消息状态

您可以通过查看上述示例的响应中的message_id来从已发送的消息中获取消息ID。

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

use MessageMediaMessagesLib\Models;
use MessageMediaMessagesLib\Exceptions;

$authUserName = 'API_KEY';
$authPassword = 'API_SECRET';
/* You can change this to true when the above keys are HMAC */
$useHmacAuthentication = false;

$client = new MessageMediaMessagesLib\MessageMediaMessagesClient($authUserName, $authPassword, $useHmacAuthentication);

$messagesController = $client->getMessages();

$messageId = '877c19ef-fa2e-4cec-827a-e1df9b5509f7';

try {
    $result = $messagesController->getMessageStatus($messageId);
    print_r($result);
} catch (MessageMediaMessagesLib\APIException $e) {
    echo 'Caught APIException: ',  $e->getMessage(), "\n";
}
?>

获取消息回复

您可以检查发送到您的消息的回复。

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

use MessageMediaMessagesLib\Models;
use MessageMediaMessagesLib\Exceptions;

$authUserName = 'API_KEY';
$authPassword = 'API_SECRET';
/* You can change this to true when the above keys are HMAC */
$useHmacAuthentication = false;

$client = new MessageMediaMessagesLib\MessageMediaMessagesClient($authUserName, $authPassword, $useHmacAuthentication);

$repliesController = $client->getReplies();

try {
    $result = $repliesController->checkReplies();
    print_r($result);
} catch (MessageMediaMessagesLib\APIException $e) {
    echo 'Caught APIException: ',  $e->getMessage(), "\n";
}
?>

检查投递报告

此端点允许您检查入站和出站消息的投递报告。

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

use MessageMediaMessagesLib\Models;
use MessageMediaMessagesLib\Exceptions;

$authUserName = 'API_KEY';
$authPassword = 'API_SECRET';
/* You can change this to true when the above keys are HMAC */
$useHmacAuthentication = false;

$client = new MessageMediaMessagesLib\MessageMediaMessagesClient($authUserName, $authPassword, $useHmacAuthentication);

$deliveryReportsController = $client->getDeliveryReports();

try {
    $result = $deliveryReportsController->checkDeliveryReports();
    print_r($result);
} catch (MessageMediaMessagesLib\APIException $e) {
    echo 'Caught APIException: ',  $e->getMessage(), "\n";
}
?>

确认投递报告

此端点允许您标记投递报告为已确认,这样它们就不再由“检查投递报告”函数返回。

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

use MessageMediaMessagesLib\Models;
use MessageMediaMessagesLib\Exceptions;

$authUserName = 'API_KEY';
$authPassword = 'API_SECRET';
/* You can change this to true when the above keys are HMAC */
$useHmacAuthentication = false;

$client = new MessageMediaMessagesLib\MessageMediaMessagesClient($authUserName, $authPassword, $useHmacAuthentication);

$deliveryReportsController = $client->getDeliveryReports();

$body = new Models\ConfirmDeliveryReportsAsReceivedRequest;
$body->deliveryReportIds = array('011dcead-6988-4ad6-a1c7-6b6c68ea628d', '3487b3fa-6586-4979-a233-2d1b095c7718', 'ba28e94b-c83d-4759-98e7-ff9c7edb87a1');

try {
    $result = $deliveryReportsController->confirmDeliveryReportsAsReceived($body);
    print_r($result);
} catch (MessageMediaMessagesLib\APIException $e) {
    echo 'Caught APIException: ',  $e->getMessage(), "\n";
}
?>

检查剩余余额(仅限预付费账户)

此端点允许您检查您的预付费账户上剩余的余额。

<?php

require_once "vendor/autoload.php";

use MessageMediaMessagesLib\Models;
use MessageMediaMessagesLib\Exceptions;

$authUserName = 'API_KEY';
$authPassword = 'API_SECRET';
/* You can change this to true when the above keys are HMAC */
$useHmacAuthentication = false;

$client = new MessageMediaMessagesLib\MessageMediaMessagesClient($authUserName, $authPassword, $useHmacAuthentication);

$messagesController = $client->getMessages();

try {
    $result = $messagesController->checkCreditsRemaining();
    print_r($result);
} catch (MessageMediaMessagesLib\APIException $e) {
    echo 'Caught APIException: ',  $e->getMessage(), "\n";
}
?>

📕 API参考文档

请查看完整的API文档以获取更详细的信息。

😕需要帮助?

请联系开发者支持developers@messagemedia.com或查看开发者门户developers.messagemedia.com

📃许可证

Apache许可证。请参阅LICENSE文件。