nexmo/laravel

此包已被废弃,不再维护。作者建议使用 vonage-laravel 包。

Laravel Nexmo PHP 客户端包

3.0.0 2022-02-03 12:04 UTC

README

此包已弃用 我们已迁移到: https://github.com/Vonage/vonage-laravel,请在此存储库中提出任何新问题或 Pull Requests。

Laravel Nexmo 包

Latest Stable Version Latest Unstable Version License Total Downloads

Nexmo is now known as Vonage

简介

这是一个简单的 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_KEYNEXMO_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 适配器。

要这样做

  1. composer require nexmo/client-core 安装核心 SDK

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

    1. 使用composer安装symfony/http-client,php-http/message-factory,php-http/httplug和nyholm/psr7
  3. 使用composer require nexmo/laravel来安装此包

  4. 在您的.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_idprivate_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客户端库的更多信息,请参阅官方客户端库存储库