rossbearman/laravel-active-campaign

将 Active Campaign 添加到您的 Laravel 应用程序中。

v1.3.1 2024-03-12 17:07 UTC

This package is auto-updated.

Last update: 2024-09-12 18:10:06 UTC


README

Latest Stable Version MIT Licensed

此包提供对 ActiveCampaign API v3 的简单接口。它是 Tjardoo/Label84 的原始 laravel-active-campaign 包的延续,并且可以轻松迁移。

该包目前支持 联系人自定义字段自定义字段值标签列表。请随意提交拉取请求以添加对其他端点的支持。

Laravel 支持

安装

1. 使用 composer 安装包

composer require rossbearman/laravel-active-campaign

2. 发布配置文件

php artisan vendor:publish --provider="RossBearman\ActiveCampaign\ActiveCampaignServiceProvider" --tag="config"

3. 在 .env 中添加基本 URL 和 API 密钥

ACTIVE_CAMPAIGN_BASE_URL=
ACTIVE_CAMPAIGN_API_KEY=

从 Label84/ActiveCampaign 迁移

迁移到 v1.3 所需的唯一更改是在命名空间中将 Label84 替换为 RossBearman,并在您的 composer.json 文件中用 rossbearman/laravel-active-campaign 替换 label84/laravel-active-campaign

用法

通过外观访问

use RossBearman\ActiveCampaign\Facades\ActiveCampaign;

$contact = ActiveCampaign::contacts()->get(1);

直接从容器中解析

use RossBearman\ActiveCampaign\ActiveCampaign;

$contact = resolve(ActiveCampaign::class)->contacts()->get(1);

通过 自动注入 注入到构造函数或方法中

use RossBearman\ActiveCampaign\ActiveCampaign;

class ContactController extends Controller
{
    public function __construct(private readonly ActiveCampaign $activeCampaign) { }

    $this->activeCampaign->contacts()->get(1);
}

示例

以下示例使用外观以简化操作,并假设已导入 RossBearman\ActiveCampaign\Facades\ActiveCampaign

联系人

检索现有联系人

$contact = ActiveCampaign::contacts()->get(1);

列出所有联系人、搜索联系人或根据查询定义的准则过滤联系人

查看 API 文档以获取可能的查询参数的完整列表。

$contacts = ActiveCampaign::contacts()->list();
$contactByEmail = ActiveCampaign::contacts()->list('email=info@example.com');
$singleList = ActiveCampaign::contacts()->list('listid=1');

创建新联系人

$contactId = ActiveCampaign::contacts()->create('info@example.com', [
    'firstName' => 'John',
    'lastName' => 'Doe',
    'phone' => '+3112345678',
]);

如果联系人不存在,则创建联系人,或更新现有联系人

$contact = ActiveCampaign::contacts()->sync('info@example.com', [
    'firstName' => 'John',
    'lastName' => 'Doe',
    'phone' => '+3112345678',
]);

更新现有联系人

use RossBearman\ActiveCampaign\DataObjects\ActiveCampaignContact;

$contact = new ActiveCampaignContact(
    id: 1,
    email: 'info@example.com',
    phone: '+3112345678',
    firstName: 'John',
    lastName: 'Deer',
);

ActiveCampaign::contacts()->update($contact);

更新列表上联系人的状态

状态应为 1(已订阅)和 2(未订阅)

$contact = ActiveCampaign::contacts()->updateListStatus(
    contactId: 1,
    listId: 1,
    status: 1,
);

删除现有联系人

ActiveCampaign::contacts()->delete(1);

向联系人添加标签

$contactTagId = ActiveCampaign::contacts()->tag(
    id: 1,
    tagId: 20
);

从联系人中删除标签

ActiveCampaign::contacts()->untag(contactTagId: 2340);

自定义字段值

检索现有字段值

$fieldValue = ActiveCampaign::fieldValues()->get(50);

创建字段值

$fieldValueId = ActiveCampaign::fieldValues()->create(
    contactId: 1,
    fieldId: 50,
    value: 'active',
);

更新现有字段值

use RossBearman\ActiveCampaign\DataObjects\ActiveCampaignFieldValue;

$fieldValue = new ActiveCampaignFieldValue(
    contactId: 1,
    field: 50,
    value: 'inactive',
);

ActiveCampaign::fieldValues()->update($fieldValue);

删除现有字段值

ActiveCampaign::fieldValues()->delete(50);

自定义字段

检索现有字段

$field = ActiveCampaign::fields()->get(1);

创建字段

$fieldId = ActiveCampaign::fields()->create(
    type: 'textarea',
    title: 'about',
    description: 'Short introduction',
);

更新现有字段

use RossBearman\ActiveCampaign\DataObjects\ActiveCampaignField;

$fieldValue = new ActiveCampaignField(
    id: 1,
    type: 'textarea',
    title: 'about',
    description: 'Relevant skills',
);

ActiveCampaign::fields()->update($fieldValue);

删除现有字段

ActiveCampaign::fields()->delete(1);

标签

检索现有标签

$tag = ActiveCampaign::tags()->get(100);

列出所有标签,可选地按名称过滤

$tags = ActiveCampaign::tags()->list();
$filteredTags = ActiveCampaign::tags()->list('test_');

创建标签

$tag = ActiveCampaign::tags()->create(
    name: 'test_tag',
    description: 'This is a new tag'
);

更新现有标签

use RossBearman\ActiveCampaign\DataObjects\ActiveCampaignTag;

$tag = new ActiveCampaignTag(
    id: 100,
    name: 'test_tag',
    description: 'Another description',
);

ActiveCampaign::tags()->update($tag);

删除现有标签

ActiveCampaign::tags()->delete(100);

代码质量

./vendor/bin/phpstan analyse

许可证

MIT