rossbearman / laravel-active-campaign
将 Active Campaign 添加到您的 Laravel 应用程序中。
v1.3.1
2024-03-12 17:07 UTC
Requires
- php: ^8.1
- illuminate/http: ^10.0 | ^11.0
- illuminate/support: ^10.0 | ^11.0
Requires (Dev)
- larastan/larastan: ^2.8
- laravel/pint: ^1.0
- orchestra/testbench: ^8.0
- phpunit/phpunit: ^9.5
README
此包提供对 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