dragos/php-sdk2

Salesforce Marketing Cloud Fuel SDK for PHP

v1.2.3 2018-11-19 09:09 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 部分,即 require salesforce-mc/fuel-sdk-php,并更新您的应用程序。

以下代码是一个示例的最小 composer.json 文件

{
    "require": {
        "salesforce-mc/fuel-sdk-php": "1.1.0"
    }
}

入门

编辑 config.php,以便您可以输入在注册应用程序时提供的 ClientID 和 ClientSecret 值。如果您正在为 Interactive Marketing Hub 构建一个 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.comhttps://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 类的实例

$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的错误日志中。此选项仅在开发过程中用于故障排除,不应在生产场景中使用。

$myclient = new ET_Client(true, true);

参数 - 允许传递用于与SSO一起使用的JWT的认证信息,或者如果您更愿意不使用配置文件选项,则可以传递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: 包含调用方法特有的详细信息的集合。

Get方法还返回一个附加值,以指示是否还有更多信息可用(可以使用getMoreResults方法检索该信息)

  • moreResults - 布尔值,指示Get请求是否还有更多数据可用。

示例

在objsamples目录中找到更多示例文件,这些文件展示了如何使用API公开的ExactTarget对象的所有可用功能。

示例列表