phpguru / fuel-sdk-php
Salesforce Marketing Cloud Fuel SDK for PHP
Requires
- php: >=5.2.3
- ext-curl: *
- ext-openssl: *
- ext-soap: *
This package is auto-updated.
Last update: 2024-09-27 22:24:21 UTC
README
从 Salesforce Marketing Cloud Fuel SDK for PHP 分支而来
Salesforce Marketing Cloud Fuel SDK for PHP 可免费使用,但不是官方 Salesforce Marketing Cloud 产品,应被视为社区项目。此 SDK 未经过官方测试或文档化。有关 Salesforce Marketing Cloud Fuel SDK for PHP 的任何帮助,请咨询 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 自动加载问题修复
- 代理:添加了对代理服务器的支持。如果您的客户端应用程序位于代理服务器后面,您可以使用以下配置设置在 $params 数组中与 PHP SDK 一起使用。
- proxyhost
- proxyport
- proxyusername
- proxypassword
您可以使用通过构造函数传递给 ET_Client 类的 $params 参数来提供这些配置设置。
-
jwt:jwt.php 从项目源树中删除,并在 composer.json 中添加为依赖项。如果您正在手动下载项目,请调用 composer update 以获取 jwt 下载。
-
soap-wsse:soap-wsse.php 从项目源树中删除,并在 composer.json 中添加为依赖项。如果您正在手动下载项目,请调用 composer update 以获取 soap-wsse 下载。
-
代码重构:代码重构为单个类文件。(在 src/ 目录下)项目树结构现在已更改
- src : 源文件
- doc : SDK API 文档
- tests : 单元测试用例
- objsamples : 示例文件
-
单元测试:使用 phpunit 测试框架添加了单元测试用例(目前为 Happy Path)(在 tests/ 目录下)
-
API 文档:使用 phpdocumentor 框架添加了 API 文档。(在 docs/ 目录下)
-
自动加载:在 src/、tests/、objsamples/ 目录下的所有源代码中集成自动加载(spl_autoload_register)。
要求
PHP 版本 >= 5.6.24
扩展
- openssl
- SOAP
- curl
API 文档
https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_quickstart_intro.htm
安装
说明
使用 composer 管理此项目的依赖项。使用 composer 安装后,检查 config.php.template 文件并相应地规划您的 $params
数组。
Composer
将依赖项添加到 composer.json 配置文件的项目要求部分 phpguru/fuel-sdk-php
,然后运行 composer update
以安装。
以下代码是示例 composer.json
文件
{
"require": {
"phpguru/fuel-sdk-php": "dev-master"
}
}
入门指南
为什么要有这个分支?
我是一个 Laravel 开发者,必须在这个 Symfony 项目中使用这个包。原始项目的安装和配置说明要求您在项目根目录下创建一个 config.php。
在Symfony 3.3x版本中,我发现这是web文件夹,而web文件夹中的config.php是由SensioDistributionBundle自动生成的。这不仅仅破坏了本包代码,还破坏了phpunit测试能力。因此,在这个分支中
已经完全移除了在web根目录中使用config.php的要求。
简而言之,虽然原始项目可能在它自己或旧版PHP项目中运行,但这个版本旨在与Symfony和Laravel等框架良好地协作。
什么?没有config.php?
在实例化ET_Client时,请查看更新的$ params数组字段,并将您的参数传递到那里,而不是使用config.php。
注意:我尝试使这个版本与原始项目维护者发布的1.1.0版本向后兼容,但您的体验可能会有所不同。
如果您正在为互动营销中心构建HubExchange应用程序,则还必须提供应用程序签名(appsignature)。只有当ExactTarget指示时,才更改默认wsdl配置项的值。
请参阅以下ET_Client部分,了解在实例化ET_Client对象时如何指定这些值。这允许您将ClientID和ClientSecret值存储在数据库或其他配置存储机制中。
如果您尚未注册应用程序或需要查找应用程序密钥或应用程序签名值,请访问Salesforce Marketing Cloud应用程序中心。
示例请求
通过Fuel SDK公开的所有ExactTarget对象都以前缀"ET_"开头。首先,从ET_List对象开始工作。
请参阅config.php.template示例(在vendor/phpguru/中使用composer),然后更新您的$ params数组以使用您的clientId和clientSecret。
添加composer自动生成的autoload.php文件,根据您的目录结构更改路径。
require \_\_DIR\_\_ . '/../vendor/autoload.php';
在Symfony和Laravel中,这会自动为您处理。
添加use语句以引用FuelSdk命名空间。
use FuelSdk\ET_Client;
use FuelSdk\ET_List;
接下来,创建ET_Client类的实例
$params = [ YOUR_PARAMS_HERE ];
$myclient = new ET_Client(false, true, $params);
创建我们想要与之工作的对象类型的实例
$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类接受3个参数。
刷新WSDL - 如果设置为true,则会在找到更新时自动下载本地WSDL副本。
调试 - 如果设置为true,Fuel SDK在幕后执行的API请求将被记录到PHP的错误日志中。
此选项仅在开发过程中进行故障排除时设置为true,并且永远不应在生产环境中使用。
参数 - 允许传递用于与JWT SSO一起使用的身份验证信息,或者如果您希望不使用配置文件选项,则传递ClientID/ClientSecret。
示例传递JWT
$myclient = new ET_Client(false, true, array("jwt"=>"JWT Values goes here", ... ));
示例传递ClientID/ClientSecret
$myclient = new ET_Client(false, true, array("clientid" => "3bjbc3mg4nbk64z5kzczf89n", "clientsecret"=>"ssnGAPvZg6kmm775KPj2Q4Cs", ...));
上面的$ params示例是不完整的。在实例化ET_Client对象时,传递必要的整个参数数组。
响应
Fuel SDK对象的全部方法都返回一个遵循相同结构的通用对象,无论调用类型如何。此对象包含一组常用的属性,用于显示有关请求的详细信息。
- status:布尔值,指示调用是否成功
- code:HTTP错误代码(SOAP请求始终为200)
- 消息:错误情况下包含更多详细信息的文本值
- 结果:包含调用方法特有的详细信息的集合。
获取方法还会返回一个附加值,以指示是否还有更多信息可用(该信息可以使用getMoreResults方法检索)
- moreResults - 表示在获取请求中是否有更多数据的布尔值。
示例
在objsamples目录中找到更多示例文件,这些文件展示了如何使用API公开的所有ExactTarget对象功能。
示例列表(已弃用)