infobip-community/infobip-api-php-sdk

v1.1.0 2022-04-06 14:24 UTC

This package is not auto-updated.

Last update: 2024-09-12 01:47:18 UTC


README

Latest Stable Version Latest Unstable Version Total Downloads License

这是一个 Infobip API 的 PHP SDK,您可以使用它作为依赖项将 Infobip API 添加到您的应用程序中。要使用此 SDK,您需要一个 Infobip 账户。如果您还没有,您可以在 这里 创建一个免费账户。

目录

一般信息

对于 infobip-api-php-sdk 版本控制,我们使用 语义版本控制 方案。

许可证

MIT 许可证 下发布。

兼容性图表

安装

要开始使用 infobip-api-php-sdk 库,请将其添加到您的 composer.json 项目依赖项

composer require infobip-community/infobip-api-php-sdk

或者您可以直接在 composer.json 文件中添加它

"require": {
    "infobip-community/infobip-api-php-sdk": "1.*"
}

然后简单地运行 composer install 以下载依赖项。

基本用法

以下是如何创建 InfobipClient 实例的示例。您也可以在您的 DI 容器中定义它,并从 env() 或配置文件中获取配置数据。

$infobipClient = new Infobip\InfobipClient(
    'apiKey',
    'baseUrl',
    3 // timeout in seconds, optional parameter
);

示例

使用 InfobipClient 调用的简单示例

// example 1
$resource = new \Infobip\Resources\WhatsApp\WhatsAppTextMessageResource(
    '441134960000',
    '441134960001',
    new \Infobip\Resources\WhatsApp\Models\TextContent('text message')
);

$response = $infobipClient
    ->whatsApp()
    ->sendWhatsAppTextMessage($resource);

异常

在使用 InfobipClient 时可能会遇到一些 Infobip 异常

  • 无效请求 (400)
  • 未经授权 (401)
  • 禁止 (403)
  • 未找到 (404)
  • 不可处理的实体 (422)
  • 请求过多 (429)
  • 内部服务器错误 (500)

当然,有处理这些异常的方法

try {
    $resource = new WhatsAppTextMessageResource();
    
    $response = $infobipClient
        ->whatsApp()
        ->sendWhatsAppTextMessage($resource);
} catch (InfobipException $exception) {
    $exception->getMessage(); // error message
    $exception->getCode(); // http status code
    $exception->getValidationErrors(); // array of validation errors, only available on 400 Bad request and 422 Unprocessable entity exceptions
}

Laravel

在您的 config/app.php 配置文件中注册 InfobipServiceProvider

'providers' => [
    // Application Service Providers...
    // ...

    // Other Service Providers...
    Infobip\Support\Laravel\InfobipServiceProvider::class,
    // ...
],

然后运行以下命令将 Infobip 配置文件复制到您的 config 目录

php artisan vendor:publish --provider="Infobip\Support\Laravel\InfobipServiceProvider"

之后,您就可以开始在 Laravel 项目中使用 Infobip API PHP SDK 包了,只需将 InfobipClient 注入到代码库中

<?php

namespace App\Http\Controllers;

use Infobip\InfobipClient;
use Infobip\Resources\WhatsApp\WhatsAppTextMessageResource;
use Infobip\Resources\WhatsApp\Models\TextContent;

final class InfobipController
{
    public function sendTextMessage(Request $request, InfobipClient $infobipClient)
    {
        $resource = new WhatsAppTextMessageResource(
            $request->input('from'),
            $request->input('to'),
            new TextContent($request->input('message'))
        );
        
        $response = $infobipClient
            ->whatsApp()
            ->sendWhatsAppTextMessage($resource);
        
        return $response;
    }
}

Symfony

InfobipClient 添加并绑定到您的 config/services.yaml 文件

services:
  Infobip\InfobipClient:
    arguments:
      $apiKey: '%infobip.api_key%'
      $baseUrl: '%infobip.base_url%'
      $timeout: '%infobip.timeout%'

文档

Infobip API 文档可以在这里找到 这里

开发

欢迎参与这个开源项目。以下是一些可以帮助您进行开发的控制台命令,如代码检查、静态分析和代码规范修复器

vendor/bin/php-cs-fixer fix src
vendor/bin/php-cs-fixer fix tests
vendor/bin/phplint
vendor/bin/phpstan

要运行 PHPunit 测试

vendor/bin/phpunit