craigowendavis / fuel-sdk-php
PHP Salesforce Marketing Cloud Fuel SDK
Requires
- php: >=5.6.24
- ext-curl: *
- ext-openssl: *
- ext-soap: *
- firebase/php-jwt: >=5.0.0
- robrichards/wse-php: 2.0.1
Requires (Dev)
- dompdf/dompdf: 0.6
- phpdocumentor/phpdocumentor: 2.8.0
- phpunit/phpunit: >=5.7.20
This package is not auto-updated.
Last update: 2024-09-29 05:08:20 UTC
README
PHP Salesforce Marketing Cloud Fuel SDK
PHP Salesforce Marketing Cloud Fuel SDK 是免费使用的,但它们不是官方的 Salesforce Marketing Cloud 产品,应被视为社区项目。此 SDK 未经过官方测试或文档化。有关 Salesforce Marketing Cloud Fuel SDK 的任何帮助,请咨询 Salesforce 论坛或此存储库的问题部分。此 SDK 不提供 Salesforce Marketing Cloud 支持。
概述
PHP Fuel SDK 提供了轻松访问 Salesforce Marketing Cloud 的 Fuel API Family 服务的途径,包括一系列 REST 和 SOAP API。这些 API 通过常见的集合类型(如数组/散列表)提供对 Salesforce Marketing Cloud(以前称为 ExactTarget)功能的访问。
1.1.0 版本中的新功能
-
命名空间:引入了命名空间。
-
新支持的对象
- 结果消息
- 数据提取
- 触发性发送摘要
-
composer 自动加载问题修复
要求
PHP 版本 >=5.6.24
扩展
- openssl
- SOAP
- curl
API 文档
http://salesforce-marketingcloud.github.io/FuelSDK-PHP/index.html
安装
手动安装
下载项目后,将 config.php.template 文件重命名为 config.php。最重要的是,您还需要手动下载所有依赖项并相应地包含它们。这就是我们强烈建议使用 composer 的原因。
Composer
将依赖项添加到您的项目的 composer.json 配置文件的要求部分中:require salesforce-mc/fuel-sdk-php,并更新您的应用程序。
以下是一个示例的 composer.json 文件:
{
"require": {
"salesforce-mc/fuel-sdk-php": "1.1.0"
}
}
入门
编辑 config.php,以便您可以输入在注册您的应用程序时提供的 ClientID 和 ClientSecret 值。如果您正在为交互式营销中心构建 HubExchange 应用程序,则还必须提供应用程序签名(appsignature)。只有在 ExactTarget 的指导下,才更改 defaultwsdl 配置项的值。
有关在创建 ET_Client 对象时指定这些值的详细信息,请参阅下面的 ET_Client 部分。如果您愿意将 ClientID 和 ClientSecret 值存储在数据库或其他配置存储机制中,请参阅该部分。
如果您尚未注册应用程序或需要查找应用程序密钥或应用程序签名值,请访问 Salesforce Marketing Cloud 应用中心。
示例请求
通过 Fuel SDK 暴露的所有 ExactTarget 对象都以 "ET_" 前缀开头。从 ET_List 对象开始工作。
获取 config.php.template 文件(在 vendor/salesforce-mc/ 下使用 composer),将其重命名为 config.php,并更新 clientId & clientSecret。
最重要的是,将其放在您的项目根目录中,其中包含 composer.json 文件。
添加 composer 自动生成的 autoload.php 文件,根据您的目录结构更改路径
require __DIR__ . '/../vendor/autoload.php';
添加 use 语句以引用 FuelSdk 命名空间
use FuelSdk\ET_Client;
use FuelSdk\ET_List;
接下来,创建 ET_Client 类的实例
$myclient = new ET_Client();
创建我们想要工作的对象类型的实例
$getList = new ET_List();
使用 authStub 属性将 ET_Client 关联到对象
$getList->authStub = $myclient;
使用 ET_List 的一个方法
$getResponse = $getList->get();
打印结果以供查看
print_r($getResponse);
示例输出
ET_Get Object
(
[status] => 1
[code] => 200
[message] =>
[results] => Array
(
[0] => stdClass Object
(
[Client] => stdClass Object
(
[ID] => 1000001
[PartnerClientKey] =>
)
[PartnerKey] =>
[CreatedDate] => 2009-06-12T14:42:06.1
[ModifiedDate] => 2011-08-17T14:50:30.697
[ID] => 1718921
[ObjectID] => f41c7d1b-8957-de11-92ee-001cc494ae9e
[CustomerKey] => All Subscribers - 578623
[ListName] => All Subscribers
[Category] => 578623
[Type] => Private
[Description] => Contains all subscribers
[ListClassification] => ExactTargetList
)
)
[request_id] => 5d56a37e-4b13-4f0a-aa13-2e108e60a990
[moreResults] =>
)
ET_Client 类
ET_Client 类负责在访问 ExactTarget API 时执行许多必要的步骤,包括检索适当的访问令牌、处理令牌状态以管理刷新以及确定 API 请求的适当端点。为了利用此类提供的优势,在整个会话中仅使用该类的单个实例。不要为每个请求实例化新的 ET_Client 对象。
ET_Client 类接受多个参数
刷新 WSDL - 如果设置为 true,则在找到更新时将自动下载 WSDL 的本地副本。
$myclient = new ET_Client(true);
调试 - 如果设置为 true,Fuel SDK 在后台进行的所有 API 请求都将记录到 PHP 的错误日志中。此选项仅在开发过程中进行故障排除时设置为 true,决不应在生产环境中使用。
$myclient = new ET_Client(true, true);
参数 - 允许传递用于与 SSO 一起使用的 JWT 的身份验证信息,或者如果您希望不使用配置文件选项,可以传递 ClientID/ClientSecret。
示例传递 JWT
$myclient = new ET_Client(true, array("jwt"=>"JWT Values goes here"));
示例传递 ClientID/ClientSecret
$myclient = new ET_Client(true, array("clientid" => "3bjbc3mg4nbk64z5kzczf89n", "clientsecret"=>"ssnGAPvZg6kmm775KPj2Q4Cs"));
响应
Fuel SDK 对象上的所有方法都返回一个遵循相同结构的通用对象,无论调用的类型如何。该对象包含一组常用的属性,用于显示有关请求的详细信息。
- status:布尔值,指示调用是否成功
- code:HTTP 错误代码(SOAP 请求始终为 200)
- message:包含更多详细信息的文本值,在发生错误时使用
- results:包含调用方法特有的详细信息的集合。
获取方法还返回一个附加值,指示是否还有更多信息可供使用(可以使用 getMoreResults 方法检索该信息)
- moreResults - 布尔值,指示在获取请求中是否还有更多数据。
示例
在 objsamples 目录中查找更多示例文件,这些文件说明了如何使用 API 通过 ExactTarget 对象的所有可用功能。
示例列表