label84 / laravel-active-campaign
v1.2.1
2023-05-05 14:50 UTC
Requires
- php: ^8.1
- illuminate/support: ^9.0|^10.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/larastan: ^2.0
- orchestra/testbench: ^7.0|^8.0
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-02-12 17:59:50 UTC
README
警告
此包不再维护。
我们已决定停止维护此包。我们不再使用 ActiveCampaign,也没有时间来维护此包。
建议的替代方案: https://github.com/rossbearman/laravel-active-campaign
您可以自由地 fork 我们的项目代码,并根据您的需求进行修改。
Laravel ActiveCampaign
此包提供对 ActiveCampaign API v3 的简单接口。
目前该包仅支持 Contacts
、Custom Fields
、Custom Fields Values
、Tags
和 Lists
端点。请随意提交剩余端点的 PR。
Laravel 支持
版本 | 发布 |
---|---|
10.x | 1.2 |
9.x | 1.1 |
安装
1. 通过 composer 安装包
composer require label84/laravel-active-campaign
2. 发布配置文件
php artisan vendor:publish --provider="Label84\ActiveCampaign\ActiveCampaignServiceProvider" --tag="config"
3. 将基础 URL 和 API 密钥添加到您的 .env 文件中
ACTIVE_CAMPAIGN_BASE_URL= ACTIVE_CAMPAIGN_API_KEY=
用法
通过外观访问
use Label84\ActiveCampaign\Facades\ActiveCampaign; // Usage $contact = ActiveCampaign::contacts()->get(1);
直接从容器中解析
use Label84\ActiveCampaign\ActiveCampaign; // Usage $contact = resolve(ActiveCampaign::class)->contacts()->get(1);
通过 自动注入 注入到构造函数或方法中
use Label84\ActiveCampaign\ActiveCampaign; class ContactController extends Controller { public function __construct(private readonly ActiveCampaign $activeCampaign) { } // Usage $this->activeCampaign->contacts()->get(1); }
示例
以下示例使用外观以简化操作,并假设已导入 Label84\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 Label84\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 Label84\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 Label84\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 Label84\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