goran-popovic / email-octopus-laravel
Email Octopus SDK for Laravel
Requires
- php: ^7.2.5|^8.0
- goran-popovic/email-octopus-php: ^v1.0.1
- guzzlehttp/guzzle: ^7.0.1
- illuminate/support: ^7.0|^8.0|^9.0|^10.0|^11.0
This package is auto-updated.
Last update: 2024-08-30 20:37:39 UTC
README
Email Octopus SDK for Laravel 是一个 PHP API 客户端,允许您与 Email Octopus 提供的 API 交互。使用此包,您可以轻松地将用户订阅/取消订阅您的通讯,触发自动化并查看有关您的活动的各种数据。
注意
此存储库包含最适合与 Laravel 框架一起使用的代码。如果您想以框架无关的方式使用 PHP API 客户端,请查看 goran-popovic/email-octopus-php
存储库。
PHP 版本支持
- >= 7.2.5
Laravel 版本支持
- >= 7.29.0
安装
您可以通过 composer 安装此包
composer require goran-popovic/email-octopus-laravel
如果您想将配置文件发布到 config/email-octopus.php
,请运行
php artisan vendor:publish --tag="email-octopus-config"
入门
API 密钥
在能够使用 SDK 之前,您需要创建一个 Email Octopus API 密钥。
.env 设置
按照上述说明创建密钥后,编辑您的 .env
文件并将 API 密钥添加到其中
EMAIL_OCTOPUS_API_KEY=YOUR_API_KEY
门面
此包将注册一个门面,您可以在应用程序中使用它来执行 API 调用,只需确保在文件顶部包含它即可
use GoranPopovic\EmailOctopus\Facades\EmailOctopus;
基本实现
然后,您可以像这样与 Email Octopus 的 API 交互
use GoranPopovic\EmailOctopus\Facades\EmailOctopus; $response = EmailOctopus::lists()->createContact('00000000-0000-0000-0000-000000000000', [ 'email_address' => 'goran.popovic@geoligard.com', // required 'fields' => [ // optional 'FirstName' => 'Goran', 'LastName' => 'Popović', ], 'tags' => [ // optional 'lead' ], 'status' => 'SUBSCRIBED', // optional ]); echo $response['status']; // SUBSCRIBED
配置
其他可用的配置设置包括设置 API 的基本 URI、超时和连接超时。对于大多数用例,默认值就足够好了,但如果您想,您可以在配置文件(config/email-octopus
)或通过使用环境变量中设置这些参数。
用法
此包装通常遵循官方 Email Octopus API 文档 中的逻辑和分类。所有路由和每个路由的可用参数都在那些文档中有更详细的说明。
所有方法都分配到 3 个主要资源中
Automation
资源
您可以在仪表板 URL 中找到当前正在查看的自动化的 ID,如下所示:https://emailoctopus.com/automations/<automationId>
start(string $automationId, array $params)
EmailOctopus::automations()->start('00000000-0000-0000-0000-000000000000', [ 'list_member_id' => '00000000-0000-0000-0000-000000000000', ]);
Campaign
资源
您可以在仪表板 URL 中找到当前正在查看的活动 ID,如下所示:https://emailoctopus.com/reports/campaign/<campaignId>
get(string $campaignId)
EmailOctopus::campaigns()->get('00000000-0000-0000-0000-000000000000');
getAll(array $params = [])
EmailOctopus::campaigns()->getAll([ 'limit' => 1, // optional 'page' => 2 // optional ]);
getReportSummary(string $campaignId)
EmailOctopus::campaigns()->getReportSummary('00000000-0000-0000-0000-000000000000');
getReportLinks(string $campaignId)
EmailOctopus::campaigns()->getReportLinks('00000000-0000-0000-0000-000000000000');
getReportBounced(string $campaignId, array $params)
EmailOctopus::campaigns()->getReportBounced('00000000-0000-0000-0000-000000000000', [ 'limit' => 1 // optional ]);
getReportClicked(string $campaignId, array $params)
EmailOctopus::campaigns()->getReportClicked('00000000-0000-0000-0000-000000000000', [ 'limit' => 1 // optional ]);
getReportComplained(string $campaignId, array $params)
EmailOctopus::campaigns()->getReportComplained('00000000-0000-0000-0000-000000000000', [ 'limit' => 1 // optional ]);
getReportOpened(string $campaignId, array $params)
EmailOctopus::campaigns()->getReportOpened('00000000-0000-0000-0000-000000000000', [ 'limit' => 1 // optional ]);
getReportSent(string $campaignId, array $params)
EmailOctopus::campaigns()->getReportSent('00000000-0000-0000-0000-000000000000', [ 'limit' => 1 // optional ]);
getReportUnsubscribed(string $campaignId)
EmailOctopus::campaigns()->getReportUnsubscribed('00000000-0000-0000-0000-000000000000');
getReportNotClicked(string $campaignId, array $params)
EmailOctopus::campaigns()->getReportNotClicked('00000000-0000-0000-0000-000000000000', [ 'limit' => 1 // optional ]);
getReportNotOpened(string $campaignId, array $params)
EmailOctopus::campaigns()->getReportNotOpened('00000000-0000-0000-0000-000000000000', [ 'limit' => 1 // optional ]);
List
资源
要找到列表 ID,请转到您的 Email Octopus 仪表板,找到“列表”选项卡,通过单击其标题选择列表,然后在单个列表中打开时转到“设置”选项卡并从中复制 ID。或者,您可以在仪表板 URL 中找到列表或其他资源的 ID,如下所示:https://emailoctopus.com/lists/<listId>
get(string $listId)
EmailOctopus::lists()->get('00000000-0000-0000-0000-000000000000');
getAll(array $params = [])
EmailOctopus::lists()->getAll([ 'limit' => 1, // optional 'page' => 2 // optional ]);
create(array $params)
EmailOctopus::lists()->create([ 'name' => 'Api test' ]);
update(string $listId, array $params)
EmailOctopus::lists()->update('00000000-0000-0000-0000-000000000000', [ 'name' => 'New name' ]);
delete(string $listId)
EmailOctopus::lists()->delete('00000000-0000-0000-0000-000000000000');
getAllTags(string $listId)
EmailOctopus::lists()->getAllTags('00000000-0000-0000-0000-000000000000');
getContact(string $listId, string $memberId)
EmailOctopus::lists()->getContact( '00000000-0000-0000-0000-000000000000', '00000000-0000-0000-0000-000000000000', );
getAllContacts(string $listId, array $params = [])
EmailOctopus::lists()->getAllContacts('00000000-0000-0000-0000-000000000000', [ 'limit' => 1, // optional 'page' => 2 // optional ]);
getSubscribedContacts(string $listId, array $params = [])
EmailOctopus::lists()->getSubscribedContacts('00000000-0000-0000-0000-000000000000', [ 'limit' => 1, // optional 'page' => 2 // optional ]);
getUnsubscribedContacts(string $listId, array $params = [])
EmailOctopus::lists()->getUnsubscribedContacts('00000000-0000-0000-0000-000000000000', [ 'limit' => 1, // optional 'page' => 2 // optional ]);
getContactsByTag(string $listId, string $listTag, array $params = [])
EmailOctopus::lists()->getContactsByTag('00000000-0000-0000-0000-000000000000', 'lead', [ 'limit' => 1 ]);
createContact(string $listId, array $params)
EmailOctopus::lists()->createContact('00000000-0000-0000-0000-000000000000', [ 'email_address' => 'goran.popovic@geoligard.com', // required 'fields' => [ // optional 'FirstName' => 'Goran', 'LastName' => 'Popović', ], 'tags' => [ // optional 'lead' ], 'status' => 'SUBSCRIBED', // optional ]);
updateContact(string $listId, string $memberId, array $params)
注意:对于会员ID,您可以使用在仪表板URL中找到的列表联系人的ID:https://emailoctopus.com/lists/<listId>/contacts/<contactId>
,或者列表联系人邮箱地址小写版本的MD5哈希值。
EmailOctopus::lists()->updateContact('00000000-0000-0000-0000-000000000000', md5('goran.popovic@geoligard.com'), [ 'email_address' => 'new_email_address@geoligard.com', // optional 'fields' => [ // optional 'FirstName' => 'New name', 'LastName' => 'New lastname', ], 'tags' => [ // optional 'vip' => true, 'lead' => false ], 'status' => 'UNSUBSCRIBED', // optional ]);
deleteContact(string $listId, string $memberId)
注意:对于会员ID,您可以使用在仪表板URL中找到的列表联系人的ID:https://emailoctopus.com/lists/<listId>/contacts/<contactId>
,或者列表联系人邮箱地址小写版本的MD5哈希值。
EmailOctopus::lists()->deleteContact( '00000000-0000-0000-0000-000000000000', md5('goran.popovic@geoligard.com') );
createField(string $listId, array $params)
EmailOctopus::lists()->createField('00000000-0000-0000-0000-000000000000', [ 'label' => 'What is your hometown?', 'tag' => 'Hometown', 'type' => 'TEXT', 'fallback' => 'Unknown' // optional ]);
updateField(string $listId, string $listFieldTag, array $params)
EmailOctopus::lists()->updateField('00000000-0000-0000-0000-000000000000', 'Hometown', [ 'label' => 'New label', 'tag' => 'NewTag', 'fallback' => 'New fallback' // optional ]);
deleteField(string $listId, string $listFieldTag)
EmailOctopus::lists()->deleteField('00000000-0000-0000-0000-000000000000', 'NewTag');
createTag(string $listId, array $params)
EmailOctopus::lists()->createTag('00000000-0000-0000-0000-000000000000', [ 'tag' => 'vip' ]);
updateTag(string $listId, string $listTag, array $params)
EmailOctopus::lists()->updateTag('00000000-0000-0000-0000-000000000000', 'vip', [ 'tag' => 'New Tag Name' ]);
deleteTag(string $listId, string $listTag)
EmailOctopus::lists()->deleteTag('00000000-0000-0000-0000-000000000000', 'New Tag Name');
变更日志
有关最近更改的更多信息,请参阅变更日志。