dragos / php-sdk
Salesforce Marketing Cloud Fuel SDK for PHP
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 auto-updated.
Last update: 2024-09-20 01:21:45 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.2.0 版本的新特性
- 增加了定义基本 SOAP URL 的支持。
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 指示您时,才更改默认 wsdl 配置项的值。
有关在 ET_Client 对象实例化时如何指定这些值的详细信息,请参阅下面的 ET_Client 部分。如果您希望将 ClientID 和 ClientSecret 值存储在数据库或其他配置存储机制中。
如果您尚未注册应用程序或需要查找应用程序密钥或应用程序签名值,请访问 Salesforce Marketing Cloud App Center。
您可以在配置文件和 ET_Client 构造函数参数中定义自己的 REST、SOAP 和认证基本 URL。如果未定义 REST & SOAP 基本URL,则默认为 https://www.exacttargetapis.com
和 https://auth.exacttargetapis.com
。
示例请求
通过 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 类的实例
创建ET_Client对象实例:
创建我们想要操作的类型对象实例
创建ET_List对象实例:
使用authStub属性将ET_Client对象关联到对象
$getList->authStub = $myclient;
使用ET_List的其中一个方法:
获取响应:
打印结果以供查看:
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的错误日志中。此选项仅应在开发过程中用于故障排除,绝不应在生产场景中使用。
$myclient = new ET_Client(true, true);
参数 - 允许通过JWT传递用于SSO的认证信息,或者如果您不希望使用配置文件选项,则传递ClientID/ClientSecret。
示例传递JWT:
$myclient = new ET_Client(true, array("jwt" => "JWT值在此处"));
示例传递ClientID/ClientSecret:
$myclient = new ET_Client(true, array("clientid" => "3bjbc3mg4nbk64z5kzczf89n", "clientsecret" => "ssnGAPvZg6kmm775KPj2Q4Cs"));
示例传递REST、认证和SOAP的基础URL:
$myclient = new ET_Client(true, array("baseUrl" => "http://rest.endpoint.com", "baseAuthUrl" => "http://auth.endpoint.com", "baseSoapUrl" => "http://soap.endpoint.com"));
响应:
Fuel SDK对象的每个方法都返回一个遵循相同结构的通用对象,无论调用类型如何。此对象包含一组常用属性,用于显示有关请求的详细信息。
- status:布尔值,指示调用是否成功
- code:HTTP错误代码(SOAP请求始终为200)
- message:文本值,在发生错误时包含更多详细信息
- results:包含调用方法特有的详细信息的集合。
获取方法还返回一个额外的值,以指示是否还有更多信息可用(可以使用getMoreResults方法检索该信息)
- moreResults:布尔值,指示GET请求是否还有更多数据。
示例:
在objsamples目录中找到更多示例文件,这些文件说明了如何使用通过API公开的ExactTarget对象的所有可用功能。
示例列表: