jmarcone / klaviyo-sdk
赋予创作者掌控命运的力量
1.0.1.20220329
2022-04-01 14:25 UTC
Requires
- php: ^7.3 || ^8.0
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- guzzlehttp/guzzle: ^7.3
- guzzlehttp/psr7: ^1.7 || ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.12
- phpunit/phpunit: ^8.0 || ^9.0
This package is auto-updated.
Last update: 2024-09-30 01:28:57 UTC
README
- SDK版本:1.0.1.20220329
有帮助的资源
设计与方法
此SDK是我们API的轻量级包装。有关API行为的完整文档,请参阅我们的API参考。
此SDK模仿了上述与语言无关的资源组织和命名约定,并对一些命名空间进行了更改,以符合PHP习惯(详情见附录)。
组织
此SDK组织成以下资源
-
活动
-
数据隐私
-
列表段
-
指标
-
档案
-
模板
-
跟踪识别
安装
您可以使用Packagist或源代码安装此包。
选项1:Packagist
您可以使用Packagist安装此库。
可选1a:已安装composer
如果您已安装composer,可以运行:composer require klaviyo/sdk
可选1b:未安装composer
如果您未安装composer,可以通过运行bash composer.sh
获取可执行版本。
这将下载一个可执行版本的composer,您可以通过运行php composer.phar
在任何您原本要运行composer
的地方使用。
然后,您可以通过运行php composer.phar require klaviyo/sdk
从Packagist安装库。
选项2:源代码
您还可以直接从源代码安装此库,而无需使用Packagist包,如下所示
- 克隆此存储库
- 运行
bash composer.json
使用示例
<?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);
获取特定指标的events
## Positional Arguments # $metric_id | string ## Keyword Arguments # $since | string # $count | int # $sort | string client->Metrics->metricTimeline($metric_id);
获取所有指标的events
## Keyword Arguments # $since | string # $count | int # $sort | string client->Metrics->metricsTimeline();
档案
交换配置文件ID
## Keyword Arguments # $body | array client->Profiles->exchange();
获取配置文件
## Positional Arguments # $person_id | string client->Profiles->getProfile($person_id);
获取特定指标的配置文件events
## Positional Arguments # $person_id | string # $metric_id | string ## Keyword Arguments # $since | string # $count | int # $sort | string client->Profiles->profileMetricTimeline($person_id, $metric_id);
获取所有指标的配置文件events
## 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,object> 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);
跟踪识别
识别配置文件(旧版)
## 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参数(包括必需的),都作为关键字参数传递。
- 所有在文档中标记为“必需”的查询和路径参数都作为位置参数传递。
- 对于任何操作,无需传递您的私有
api_key
,因为它在客户端实例化时已定义;但在Track/Identify端点处,公共密钥仍然是必需的。