dmt-software/laposta-api

用于消费 Laposta API 的客户端

0.3.6 2024-08-29 14:51 UTC

This package is auto-updated.

Last update: 2024-08-29 14:55:06 UTC


README

一个面向对象的客户端,用于消费 Laposta API。

安装

composer require dmt-software/laposta-api

配置

安装此包后,您需要对其进行配置。最快的方法是简单地添加一个配置文件,并使用它将配置加载到 Config 实例中。

// file: config.php

return [
    'apiKey' => 'JdMtbsMq2jqJdQZD9AHC',
    'customFieldsClasses' => [],
    'httpClient' => \GuzzleHttp\Client::class,
    'requestFactory' => \GuzzleHttp\Psr7\HttpFactory::class,
];

生成实体

下一步是生成用于邮件列表(的)自定义字段的实体。

vendor/bin/laposta generate:list-fields config.php -l BaImMu3JZA

有关自定义字段的更深入信息,可以在订阅者的 文档 中找到。

用法

初始化客户端

创建客户端实例的最简单方法是用此包中的工厂。这些工厂还可以在依赖注入容器中使用(作为指南)。

use DMT\Laposta\Api\Clients\Subscribers;
use DMT\Laposta\Api\Config;
use DMT\Laposta\Api\Factories\CommandBusFactory;

$commandBus = CommandBusFactory::create(Config::load('config.php'));

$client = new Subscribers($commandBus);

将用户订阅到邮件列表

use DMT\CommandBus\Validator\ValidationException;
use DMT\Laposta\Api\Entity\BaseCustomFields;
use DMT\Laposta\Api\Entity\Subscriber;
use DMT\Laposta\Api\Clients\Subscribers;
use Psr\Http\Client\ClientExceptionInterface;

try {
    /** @var BaseCustomFields $customFields The generated entity for your list */
    
    $subscriber = new Subscriber();
    $subscriber->listId = 'BaImMu3JZA';
    $subscriber->email = 'user@example.com';
    $subscriber->customFields = $customFields;
    $subscriber->customFields->name = 'John Do';
    
    /** @var Subscribers $client */
    $client->create($subscriber, Subscribers::OPTION_SUPPRESS_EMAIL_NOTIFICATION);
} catch (ValidationException $exception) {
     // input was wrong 
} catch (ClientExceptionInterface $exception) {
    // error response
}

有关如何使用此包的更多信息,请参阅客户端 文档