vonage/vonage-laravel

为 Laravel 提供的 Vonage PHP SDK 服务提供者

安装次数: 223,168

依赖者: 0

建议者: 0

安全: 0

星标: 32

关注者: 16

分支: 8

开放问题: 3

类型:package

1.0.4 2024-05-01 09:35 UTC

README

The Vonage logo The Laravel logo

Vonage Package for Laravel

Latest Stable Version Total Downloads License PHP Version Require

简介

这是一个用于集成Vonage PHP 客户端库的 Laravel 服务提供者。

要求

由于 PHP 版本限制,此包适用于 Laravel 9.x 及以上版本。您需要运行 PHP 8.0 及以上版本 - 对于旧版本兼容性,您需要查看之前的版本。

安装

使用 Composer,在终端运行以下命令

composer require vonage/vonage-laravel

处理 Guzzle 客户端问题

默认情况下,此包使用 vonage/client,它包含一个用于访问 API 的 Guzzle 适配器。一些其他库提供自己的 Guzzle 适配器,导致 composer 无法解析依赖列表。当您将 vonage/vonage-laravel 添加到应用程序中时,可能会因此出现错误。

Vonage 客户端允许您覆盖正在使用的 HTTP 适配器。这需要更多的配置,但此包允许您使用 vonage/client-core 来提供自己的 HTTP 适配器。

要这样做

运行 composer require vonage/client-core 使用 Composer 安装核心 SDK。

安装您自己的 httplug 兼容适配器。例如,要使用 Symfony 的 HTTP 客户端

composer require symfony/http-client php-http/message-factory php-http/httplug nyholm/psr7

composer require vonage/vonage-laravel 安装此包

在您的 .env 文件中,添加以下配置

VONAGE_HTTP_CLIENT="Symfony\\Component\\HttpClient\\HttplugClient"

现在,您可以从 Laravel 服务容器中获取 Vonage\Client 对象,或使用此包提供的 Facade。

配置

您可以使用 artisan vendor:publish 将分发配置文件复制到您的应用程序配置目录

php artisan vendor:publish --provider="Vonage\Laravel\VonageServiceProvider"

然后更新 config/vonage.php,使用您的凭据。或者,您也可以更新您的 .env 文件如下

VONAGE_KEY=my_api_key
VONAGE_SECRET=my_secret

可选地,您也可以设置一个 application_idprivate_key,如果需要的话

VONAGE_APPLICATION_ID=my_application_id
VONAGE_PRIVATE_KEY=./private.key

私钥可以是上述文件路径,也可以是密钥本身的字符串

VONAGE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n[...]\n-----END PRIVATE KEY-----\n"
VONAGE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----
[...]
-----END PRIVATE KEY-----
"

使用方法

要使用 Vonage 客户端库,您可以使用 Facade 或从服务容器请求实例

$text = new \Vonage\SMS\Message\SMS($toNumber, $fromNumber, 'Test SMS using Laravel');
Vonage::sms()->send($text);

或者

$vonage = app('Vonage\Client');
$text = new \Vonage\SMS\Message\SMS($toNumber, $fromNumber, 'Test SMS using Laravel');
$vonage->sms()->send($text);

如果您使用私钥认证,可以拨打电话

$outboundCall = new \Vonage\Voice\OutboundCall(
    new \Vonage\Voice\Endpoint\Phone('14843331234'),
    new \Vonage\Voice\Endpoint\Phone('14843335555')
);
$outboundCall
    ->setAnswerWebhook(
        new \Vonage\Voice\Webhook('https://example.com/answer')
    )
    ->setEventWebhook(
        new \Vonage\Voice\Webhook('https://example.com/event')
    )
;

$response = Vonage::voice()->createOutboundCall($outboundCall);

有关使用 Vonage 客户端库的更多信息,请参阅官方客户端库仓库