jmarcone/klaviyo-sdk

赋予创作者掌控命运的力量

1.0.1.20220329 2022-04-01 14:25 UTC

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包,如下所示

  1. 克隆此存储库
  2. 运行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&lt;string,object&gt;

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保持不变

参数与参数

参数遵循与资源组和操作相同的命名约定。

我们坚持以下参数/参数约定

  1. 所有参数都作为函数参数传递。
  2. 所有可选参数以及所有Body和FormData参数(包括必需的),都作为关键字参数传递。
  3. 所有在文档中标记为“必需”的查询和路径参数都作为位置参数传递。
  4. 对于任何操作,无需传递您的私有api_key,因为它在客户端实例化时已定义;但在Track/Identify端点处,公共密钥仍然是必需的。