klaviyo / sdk
此包已被废弃且不再维护。未建议替代包。
赋予创作者掌控命运的力量
1.0.3.20220329
2022-07-19 05:28 UTC
Requires
- php: ^7.3 || ^8.0
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- guzzlehttp/guzzle: ^7.3
- guzzlehttp/psr7: ^1.7 || ^2.0
This package is auto-updated.
Last update: 2023-08-18 15:25:16 UTC
README
旧版通知
此 SDK 将于 2024-06-30 废弃并退役。
我们有一个新的 PHP SDK 与我们的 新 API 一起使用。
我们建议迁移到我们最新的 SDK。
您可以在这里了解更多关于我们的 SDK 发布历史和支持信息。
有关我们新旧 API 的比较,请参阅此指南。
Klaviyo PHP SDK
- SDK 版本:1.0.3.20220329
有用的资源
设计与方法
此 SDK 是我们 API 的薄包装。请参阅我们的 API 参考,了解 API 行为的完整文档。
此 SDK 与上述与语言无关的资源具有相同的组织结构和命名约定,并对命名空间进行了一些更改,以符合 PHP 习惯(详细信息见附录)。
组织
此 SDK 按以下资源组织
-
活动
-
数据隐私
-
列表段
-
指标
-
个人资料
-
模板
-
跟踪识别
安装
您可以使用 Packagist 或源代码安装此包。
选项 1:Packagist
您可以使用 Packagist 安装此库。
如果您已安装 composer,则可以运行: composer require klaviyo/sdk
选项 2:源代码
您还可以直接从源代码安装此库,无需使用 Packagist 包,方法如下
- 克隆此存储库
- 在存储库中运行
composer update
使用示例
<?php require_once(__DIR__ . '/vendor/autoload.php'); use Klaviyo\Client; $client = new Client( 'YOUR_API_KEY', $num_retries = 3, $wait_seconds = 3); $response = $client->Metrics->getMetrics();
重试行为
- SDK 在可解析的错误上重试,即:速率限制(常见)和 Klaviyo 端的服务器错误(罕见)。
- 上面示例中的关键字参数定义了重试行为
wait_seconds
表示每次重试等待的时间,单位为 秒- 如果您想禁用重试,请设置
$num_retries = 0
- 示例中填充了默认值
- 无法解决的错误和超时后可解决的错误会抛出
ApiException
,详细信息如下。
错误处理
当服务器返回无法解决的响应,或可解决的非2XX
响应超时时,此SDK会抛出ApiException
错误。
如果您想扩展SDK原生支持的错误处理功能,可以使用以下方法从ApiException
对象中检索相应的属性
getCode() : int
getMessage() : str
getReponseBody() : bytes
getResponseHeaders() : string[]
例如
try { $client.Metrics.getMetrics(); } catch (Exception $e) { if ($e->getCode() == SOME_INTEGER) { doSomething(); } }
操作和参数的完整列表
注意
- 组织:资源组和函数按字母顺序列出,首先是资源名称,然后是OpenAPI摘要。操作摘要列在API参考的右侧栏中。这些摘要直接链接到API参考的相应部分。
- 例如值/数据类型,以及参数是否必需/可选,请参考相应的API参考链接。
- 某些关键字参数是API调用成功所需的,上面的API文档是有关哪些关键字参数必需的确切来源。
- 关键字参数不包括在示例SDK调用中;相反,在适用的情况下,它们作为注释包含在每个SDK调用的上方。
- JSON有效负载应以关联数组的形式传递
- PHP的一个奇怪特性是,默认/可选参数必须按顺序传递,并且必须包含并设置为
null
,至少到您想使用的最后一个默认值为止。- 例如,如果某个函数具有以下可选参数
someFunction($a=1, $b=2, $c=3)
,并且您只想设置$b
,则必须传递someFunction($a=null, $b=$YOUR_VALUE)
- 否则,如果您传递类似
someFunction($b=$YOUR_VALUE)
的内容,PHP实际上会将$YOUR_VALUE
分配给参数$a
,这是错误的。
- 例如,如果某个函数具有以下可选参数
活动
取消活动
## Positional Arguments # $campaign_id | string client->Campaigns->cancelCampaign($campaign_id);
克隆活动
## Positional Arguments # $campaign_id | string # $name | string # $list_id | string client->Campaigns->cloneCampaign($campaign_id, $name, $list_id);
创建新活动
## Positional Arguments # $list_id | string # $template_id | string # $from_email | string # $from_name | string # $subject | string ## Keyword Arguments # $name | string # $use_smart_sending | bool # $add_google_analytics | bool client->Campaigns->createCampaign($list_id, $template_id, $from_email, $from_name, $subject);
获取活动信息
## Positional Arguments # $campaign_id | string client->Campaigns->getCampaignInfo($campaign_id);
获取活动接收者
## Positional Arguments # $campaign_id | string ## Keyword Arguments # $count | int # $sort | string # $offset | string client->Campaigns->getCampaignRecipients($campaign_id);
获取活动
## Keyword Arguments # $page | int # $count | int client->Campaigns->getCampaigns();
安排活动
## Positional Arguments # $campaign_id | string # $send_time | string client->Campaigns->scheduleCampaign($campaign_id, $send_time);
立即发送活动
## Positional Arguments # $campaign_id | string client->Campaigns->sendCampaign($campaign_id);
更新活动
## Positional Arguments # $campaign_id | string ## Keyword Arguments # $list_id | string # $template_id | string # $from_email | string # $from_name | string # $subject | string # $name | string # $use_smart_sending | bool # $add_google_analytics | bool client->Campaigns->updateCampaign($campaign_id);
数据隐私
请求删除
## Keyword Arguments # $body | array client->DataPrivacy->requestDeletion();
列表和段
向列表添加成员
## Positional Arguments # $list_id | string ## Keyword Arguments # $body | array client->ListsSegments->addMembers($list_id);
创建列表
## Positional Arguments # $list_name | string client->ListsSegments->createList($list_name);
删除列表
## Positional Arguments # $list_id | string client->ListsSegments->deleteList($list_id);
从所有电子邮件中排除配置文件
## Positional Arguments # $email | string client->ListsSegments->excludeGlobally($email);
获取全局排除和退订
## Keyword Arguments # $reason | string # $sort | string # $count | int # $page | int client->ListsSegments->getGlobalExclusions();
获取列表的所有排除项
## Positional Arguments # $list_id | string ## Keyword Arguments # $marker | int client->ListsSegments->getListExclusions($list_id);
获取列表信息
## Positional Arguments # $list_id | string client->ListsSegments->getListInfo($list_id);
检查配置文件是否在列表中
## Positional Arguments # $list_id | string ## Keyword Arguments # $body | array client->ListsSegments->getListMembers($list_id);
检查配置文件是否在列表中且未被抑制
## Positional Arguments # $list_id | string ## Keyword Arguments # $body | array client->ListsSegments->getListSubscriptions($list_id);
获取列表
client->ListsSegments->getLists();
获取列表和段成员
## Positional Arguments # $list_or_segment_id | string ## Keyword Arguments # $marker | int client->ListsSegments->getMembers($list_or_segment_id);
检查配置文件是否在段中
## Positional Arguments # $segment_id | string ## Keyword Arguments # $body | array client->ListsSegments->getSegmentMembers($segment_id);
从列表中移除配置文件
## Positional Arguments # $list_id | string ## Keyword Arguments # $body | array client->ListsSegments->removeMembers($list_id);
订阅配置文件到列表
## Positional Arguments # $list_id | string ## Keyword Arguments # $body | array client->ListsSegments->subscribe($list_id);
从列表中退订配置文件
## Positional Arguments # $list_id | string ## Keyword Arguments # $body | array client->ListsSegments->unsubscribe($list_id);
更新列表名称
## Positional Arguments # $list_id | string # $list_name | string client->ListsSegments->updateListName($list_id, $list_name);
指标
获取指标信息
## Keyword Arguments # $page | int # $count | int client->Metrics->getMetrics();
查询事件数据
## Positional Arguments # $metric_id | string ## Keyword Arguments # $start_date | string # $end_date | string # $unit | string # $measurement | string # $where | string # $by | string # $count | int client->Metrics->metricExport($metric_id);
获取特定指标的的事件
## Positional Arguments # $metric_id | string ## Keyword Arguments # $since | string # $count | int # $sort | string client->Metrics->metricTimeline($metric_id);
获取所有指标的的事件
## Keyword Arguments # $since | string # $count | int # $sort | string client->Metrics->metricsTimeline();
用户资料
根据用户资料ID交换ID
## Keyword Arguments # $body | array client->Profiles->exchange();
获取用户资料
## Positional Arguments # $person_id | string client->Profiles->getProfile($person_id);
获取用户资料ID
## Keyword Arguments # $email | string # $phone_number | string # $external_id | string client->Profiles->getProfileId();
获取特定指标的特定用户资料的事件
## Positional Arguments # $person_id | string # $metric_id | string ## Keyword Arguments # $since | string # $count | int # $sort | string client->Profiles->profileMetricTimeline($person_id, $metric_id);
获取所有指标的特定用户资料的事件
## Positional Arguments # $person_id | string ## Keyword Arguments # $since | string # $count | int # $sort | string client->Profiles->profileMetricsTimeline($person_id);
更新用户资料
## Positional Arguments # $person_id | string ## Keyword Arguments # $params | array<string,mixed> client->Profiles->updateProfile($person_id);
模板
克隆模板
## Positional Arguments # $template_id | string # $name | string client->Templates->cloneTemplate($template_id, $name);
创建新模板
## Positional Arguments # $name | string # $html | string client->Templates->createTemplate($name, $html);
删除模板
## Positional Arguments # $template_id | string client->Templates->deleteTemplate($template_id);
获取所有模板
## Keyword Arguments # $page | int # $count | int client->Templates->getTemplates();
渲染模板
## Positional Arguments # $template_id | string ## Keyword Arguments # $context | string client->Templates->renderTemplate($template_id);
渲染并发送模板
## Positional Arguments # $template_id | string # $from_email | string # $from_name | string # $subject | string # $to | string ## Keyword Arguments # $context | string client->Templates->sendTemplate($template_id, $from_email, $from_name, $subject, $to);
更新模板
## Positional Arguments # $template_id | string ## Keyword Arguments # $name | string # $html | string client->Templates->updateTemplate($template_id);
TrackIdentify
标识配置文件(旧版)
## Positional Arguments # $data | string client->TrackIdentify->identifyGet($data);
标识配置文件
## Positional Arguments # $data | string client->TrackIdentify->identifyPost($data);
跟踪配置文件活动(旧版)
## Positional Arguments # $data | string client->TrackIdentify->trackGet($data);
跟踪配置文件活动
## Positional Arguments # $data | string client->TrackIdentify->trackPost($data);
附录
限制
api_key
在全局级别设置:这意味着如果您管理多个商店,您需要在不同的环境中为每个商店运行不同的代码
命名空间
为了使SDK符合PHP的语法习惯,我们对以下命名空间进行了以下更改(相对于上面的语言无关资源,例如API文档、指南等)。
- 非字母数字符号(空格、破折号、下划线、和等)从资源名称(标签)和函数名称(操作ID)中去除
- 资源名称和函数名称使用camelCase
- 注意:这不适用于参数名称
例如
Track & Identify
变为TrackIdentify
get-campaigns
变为getCampaigns
profile_id
保持不变
参数 & 参数
参数遵循与资源组和操作相同的命名约定。
我们坚持以下参数/参数的约定
- 所有参数都作为函数参数传递。
- 所有可选参数以及所有Body和FormData参数(包括必需的),都作为关键字参数传递。
- 所有在文档中标记为
required
的查询和路径参数都作为位置参数传递。 - 在执行任何操作时,不需要传递您的私人
api_key
,因为它在客户端实例化时已定义;在Track/Identify端点处仍需要指定公钥。