heroku-marketingcloud/fuelsdk-php-8-1

PHP Salesforce Marketing Cloud Fuel SDK

v1.0.1 2022-10-07 21:24 UTC

This package is not auto-updated.

Last update: 2024-09-22 05:07:41 UTC


README

PHP Salesforce Marketing Cloud Fuel SDK

PHP Salesforce Marketing Cloud Fuel SDK 是免费使用的,但它们不是官方的 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.4.0 中的新功能

除了作为版本 1.3.0 部分添加的 OAuth2 功能外,我们现在还添加了对使用 OAuth2 验证公共/网络应用程序的支持。

  • OAuth2 样例配置
    'appsignature' => 'none', 
    'clientid' => '<CLIENT_ID>',
    'clientsecret' => '<CLIENT_SECRET>',
    'defaultwsdl' => 'https://webservice.exacttarget.com/etframework.wsdl',
    'xmlloc' => '/some/path/to/cache/ExactTargetWSDL.xml',
    'baseAuthUrl' => '<AUTH TENANT SPECIFIC ENDPOINT>',
    'baseSoapUrl' => '<SOAP TENANT SPECIFIC ENDPOINT>',
    'baseUrl' => '<REST TENANT SPECIFIC ENDPOINT>',
    'useOAuth2Authentication' => true,
    'applicationType' => 'public|web'
    'redirectURI' => 'REDIRECT_URL_FOR_YOUR_APP'
    'authorizationCode' => 'AUTHORIZATION_CODE_RECEIVED_FROM_AUTHORIZE_UI_CALL'
    'accountId' => <TARGET_ACCOUNT_ID>,
    'scope' => '<PERMISSION_LIST>'
  • 示例:将配置作为参数传递给 ET_Client 构造函数
  $myclient = new ET_Client(
    true,
    true, 
    array(
           'appsignature' => 'none', 
           'clientid' => '<CLIENT_ID>',
           'clientsecret' => '<CLIENT_SECRET>',
           'defaultwsdl' => 'https://webservice.exacttarget.com/etframework.wsdl',
           'xmlloc' => '/some/path/to/cache/ExactTargetWSDL.xml',
           'baseAuthUrl' => '<AUTH TENANT SPECIFIC ENDPOINT>',
           'baseSoapUrl' => '<SOAP TENANT SPECIFIC ENDPOINT>',
           'baseUrl' => '<REST TENANT SPECIFIC ENDPOINT>',
           'useOAuth2Authentication' => true,
           'applicationType' => 'public|web'
           'redirectURI' => 'REDIRECT_URL_FOR_YOUR_APP'
           'authorizationCode' => 'AUTHORIZATION_CODE_RECEIVED_FROM_AUTHORIZE_UI_CALL'
           'accountId' => <TARGET_ACCOUNT_ID>,
           'scope' => '<PERMISSION_LIST>'
    )
  );

版本 1.3.0

  • 添加了对 OAuth2 验证的支持 - 更多信息
  • 要启用 OAuth2 验证,请在 config.php 文件中将 'useOAuth2Authentication' => true 设置为 true,或将其传递给 ET_Client 构造函数的 'params' 参数。
  • OAuth2 样例配置
    'appsignature' => 'none', 
    'clientid' => '<CLIENT_ID>',
    'clientsecret' => '<CLIENT_SECRET>',
    'defaultwsdl' => 'https://webservice.exacttarget.com/etframework.wsdl',
    'xmlloc' => '/some/path/to/cache/ExactTargetWSDL.xml',
    'baseAuthUrl' => '<AUTH TENANT SPECIFIC ENDPOINT>',
    'baseSoapUrl' => '<SOAP TENANT SPECIFIC ENDPOINT>',
    'baseUrl' => '<REST TENANT SPECIFIC ENDPOINT>',
    'useOAuth2Authentication' => true,
    'accountId' => <TARGET_ACCOUNT_ID>,
    'scope' => '<PERMISSION_LIST>'
  • 示例:将配置作为参数传递给 ET_Client 构造函数
  $myclient = new ET_Client(
    true,
    true, 
    array(
        'appsignature' => 'none',
        'clientid' => '<CLIENT_ID>',
        'clientsecret' => '<CLIENT_SECRET>',
        'defaultwsdl' => 'https://webservice.exacttarget.com/etframework.wsdl',
        'xmlloc' => '/some/path/to/cache/ExactTargetWSDL.xml',
        'baseAuthUrl' => '<AUTH TENANT SPECIFIC ENDPOINT>',
        'baseSoapUrl' => '<SOAP TENANT SPECIFIC ENDPOINT>',
        'baseUrl' => '<REST TENANT SPECIFIC ENDPOINT>',
        'useOAuth2Authentication' => true, 
        'accountId' => '<TARGET_ACCOUNT_ID>', 
        'scope' => '<PERMISSION_LIST>'
    )
  );

版本 1.2.0

要求

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 require salesforce-mc/fuel-sdk-php 到项目的 composer.json 配置文件中的 require 部分,并更新您的应用程序。

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

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

入门

编辑 config.php 以输入您在注册应用程序时提供的 ClientID 和 ClientSecret 值。如果您正在为交互式营销中心构建 HubExchange 应用程序,则还必须提供应用程序签名(appsignature)。除非 ExactTarget 指示,否则请勿更改默认 wsdl 配置项的值。

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

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

您可以在配置文件和 ET_Client 构造函数的 params 参数中定义自己的 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 Values goes here"));

示例传递 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 对象。

示例列表