digitaladditive/php-fuel-sdk-fork

PHP版的Salesforce Marketing Cloud Fuel SDK的分支版本

1.3 2018-08-17 16:23 UTC

This package is not auto-updated.

Last update: 2024-09-29 05:08:20 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自动加载问题

要求

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的指导下更改defaultwsdl配置项的值。

有关在ET_Client对象实例化时指定这些值的详细信息,请参阅下面的ET_Client部分。如果您希望将ClientID和ClientSecret值存储在数据库或其他配置存储机制中。

如果您尚未注册应用程序或需要查找应用程序密钥或应用程序签名值,请前往Salesforce Marketing Cloud App Center。

示例请求

通过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();

创建我们想要处理的对象类型的实例

创建 ET_List 对象:$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 值在此处"));

示例传递 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 对象的所有可用功能。

示例列表