nexmo / laravel
Laravel Nexmo PHP 客户端包
Requires
- php: ^7.4|^8.0|^8.1
- illuminate/support: ^5.2|^6.0|^7.0|^8.0
- vonage/client: ^3.0
Requires (Dev)
- orchestra/testbench: ~3.0|^4.0|^5.0|^6.0
- phpunit/phpunit: ^5.3|~6.0|~8.0|~9.0
This package is auto-updated.
Last update: 2022-10-12 07:54:28 UTC
README
此包已弃用 我们已迁移到: https://github.com/Vonage/vonage-laravel,请在此存储库中提出任何新问题或 Pull Requests。
Laravel Nexmo 包
简介
这是一个简单的 Laravel 服务提供者,提供了对 Nexmo PHP 客户端库 的访问。
安装
使用 Composer 安装 PHP 客户端库
composer require nexmo/laravel
或者,将以下两行添加到您的 composer require 部分
{ "require": { "nexmo/laravel": "^2.0" } }
Laravel 5.5+
如果您使用的是 Laravel 5.5 或更高版本,该包将自动注册 Nexmo
提供器和外观。
Laravel 5.4 及以下
将 Nexmo\Laravel\NexmoServiceProvider
添加到您的 config/app.php
文件中的 providers
数组
'providers' => [ // Other service providers... Nexmo\Laravel\NexmoServiceProvider::class, ],
如果您想使用外观接口,可以在需要时使用外观类
use Nexmo\Laravel\Facade\Nexmo;
或者,在您的 config/app.php
中添加别名
'aliases' => [ ... 'Nexmo' => Nexmo\Laravel\Facade\Nexmo::class, ],
在 Lumen 中使用 Nexmo-Laravel
Nexmo-Laravel 也与 Lumen 兼容!您需要手动做一些工作来启动它。首先,使用 composer 安装包
composer require nexmo/laravel
接下来,我们必须告诉 Lumen 我们库的存在。更新 bootstrap/app.php
并注册 NexmoServiceProvider
$app->register(Nexmo\Laravel\NexmoServiceProvider::class);
最后,我们需要配置库。不幸的是,Lumen 不支持自动发布文件,因此您需要自己创建配置文件,创建配置目录并将配置文件从包中复制到您的项目中
mkdir config cp vendor/nexmo/laravel/config/nexmo.php config/nexmo.php
此时,在您的 .env
文件中设置 NEXMO_KEY
和 NEXMO_SECRET
,它应该对您有效。您可以使用以下路由进行测试
$router->get('/', function () use ($router) { app(Nexmo\Client::class); });
处理 Guzzle 客户端问题
默认情况下,此包使用 nexmo/client
,其中包含一个用于访问 API 的 Guzzle 适配器。某些其他库提供自己的 Guzzle 适配器,导致 composer 无法解决依赖关系列表。您可能因为此原因在将 nexmo/laravel
添加到您的应用程序时遇到错误。
Nexmo 客户端允许您覆盖正在使用的 HTTP 适配器。这需要更多的配置,但此包允许您使用 nexmo/client-core
来提供自己的 HTTP 适配器。
要这样做
-
composer require nexmo/client-core
安装核心 SDK -
安装您的自定义
httplug
兼容适配器。例如,要使用 Symfony 的 HTTP 客户端使用composer安装symfony/http-client,php-http/message-factory,php-http/httplug和nyholm/psr7
-
使用
composer require nexmo/laravel
来安装此包 -
在您的
.env
文件中,添加以下配置NEXMO_HTTP_CLIENT="Symfony\\Component\\HttpClient\\HttplugClient"
现在您可以从Laravel服务容器中获取Nexmo\Client
对象,或使用此包提供的Facade。
配置
您可以使用artisan vendor:publish
将分发配置文件复制到您的应用程序的配置目录
php artisan vendor:publish
然后更新config/nexmo.php
,使用您的凭证。或者,您也可以使用以下内容更新您的.env
文件
NEXMO_KEY=my_api_key
NEXMO_SECRET=my_secret
如有需要,您还可以设置application_id
和private_key
NEXMO_APPLICATION_ID=my_application_id
NEXMO_PRIVATE_KEY=./private.key
私钥可以是文件路径,如上所示,或键本身的字符串
NEXMO_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n[...]\n-----END PRIVATE KEY-----\n"
NEXMO_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----
[...]
-----END PRIVATE KEY-----
"
使用方法
要使用Nexmo客户端库,您可以使用Facade或从服务容器中请求实例
Nexmo::message()->send([ 'to' => '14845551244', 'from' => '16105552344', 'text' => 'Using the facade to send a message.' ]);
或者
$nexmo = app('Nexmo\Client'); $nexmo->message()->send([ 'to' => '14845551244', 'from' => '16105552344', 'text' => 'Using the instance to send a message.' ]);
如果您正在使用私钥认证,请尝试进行语音通话
Nexmo::calls()->create([ 'to' => [[ 'type' => 'phone', 'number' => '14155550100' ]], 'from' => [ 'type' => 'phone', 'number' => '14155550101' ], 'answer_url' => ['https://example.com/webhook/answer'], 'event_url' => ['https://example.com/webhook/event'] ]);
有关使用Nexmo客户端库的更多信息,请参阅官方客户端库存储库。