跳转到主要内容

ExactTarget Fuel SDK for Python

项目描述

# FuelSDK-Python

ExactTarget Fuel SDK for Python

## 概述

Fuel SDK for Python 提供了对 ExactTarget 的 Fuel API Family 服务的简单访问,包括一组 REST API 和 SOAP API。这些 API 通过常见的集合类型(如数组/散列)提供对 ExactTarget 功能的访问。

## 安装

Fuel SDK for python 可以通过使用 [pip](https://pip.readthedocs.org) 命令从 [Python 包索引](https://pypi.python.org/pypi) 轻松安装。Pip 是一个用于安装和管理 Python 包的工具。

```
pip install FuelSDK
```

## 入门

### 配置

您必须以以下两种方式之一配置 Fuel SDK 的访问令牌和详情。

1. 将包含的 `config.python.template` 文件复制到 `~/.fuelsdk/` 或此 Python 模块中的 `config.python`。
2. 添加环境变量
* `FUELSDK_CLIENT_ID` (必需)
* `FUELSDK_CLIENT_SECRET` (必需)
* `FUELSDK_APP_SIGNATURE`
* `FUELSDK_DEFAULT_WSDL`
* `FUELSDK_AUTH_URL`
* `FUELSDK_WSDL_FILE_LOCAL_LOC`

编辑 `config.python` 或声明环境变量,以便您可以输入在注册应用程序时提供的 ClientID 和 Client Secret 值。如果您正在为互动营销中心构建 HubExchange 应用程序,则还必须提供应用程序签名 (`appsignature` / `FUELSDK_APP_SIGNATURE`)。
`defaultwsdl` / `FUELSDK_DEFAULT_WSDL` 配置必须根据 [ExactTarget 服务](https://code.exacttarget.com/question/there-any-cetificrate-install-our-server-access-et-api "ExactTarget 论坛") 进行更改。
`authenticationurl` / `FUELSDK_AUTH_URL` 也必须根据 [服务](https://code.exacttarget.com/question/not-able-create-accesstoken-when-clientidsecret-associated-preproduction-account "ExactTarget 论坛") 进行更改。
`wsdl_file_local_loc` / `FUELSDK_WSDL_FILE_LOCAL_LOC` 允许您指定 WSDL 文件在磁盘上的完整路径/文件名,例如,如果您从同一服务器连接到不同的端点。

如果您尚未注册应用程序或需要查找应用程序密钥或应用程序签名值,请访问 [Code@: ExactTarget 开发者社区](http://code.exacttarget.com/appcenter "Code@ 应用中心")。


| 环境 | WSDL (默认) | URL (认证) |
| ----------- | -------------- | ---------- |
| 生产 | https://webservice.exacttarget.com/etframework.wsdl | https://auth.exacttargetapis.com/v1/requestToken?legacy=1 |
| 沙箱 | https://webservice.test.exacttarget.com/Service.asmx?wsdl | https://auth-test.exacttargetapis.com/v1/requestToken?legacy=1 |


## 示例请求

### 代码

通过 Fuel SDK 暴露的所有 ExactTarget 对象都以 "ET_" 为前缀。从 ET_List 对象开始工作

```python
# 添加 require 语句以引用 Fuel SDK 的功能
import FuelSDK

# 接下来,创建 ET_Client 类的实例
myClient = FuelSDK.ET_Client()

# 创建我们想要与之交互的对象类型的实例
list = FuelSDK.ET_List()

# 使用 auth_stub 属性将 ET_Client 关联到对象
list.auth_stub = myClient

# 利用 ET_List 的一个方法
response = list.get()

# 打印结果以供查看
print 'Post 状态: ' + str(response.status)
print 'Code: ' + str(response.code)
print 'Message: ' + str(response.message)
print '结果计数: ' + str(len(response.results))
print '结果: ' + str(response.results)
```


### 示例输出

```
检索状态: True
Code: 200
Message: OK
MoreResults: False
结果长度: 1
结果: [(List){
Client =
(ClientID){
ID = 113903
}
PartnerKey = None
CreatedDate = 2013-07-29 04:43:32.000073
ModifiedDate = 2013-07-29 04:43:32.000073
ID = 1966872
ObjectID = None
CustomerKey = "343431CD-031D-43C7-981F-51B778A5A47F"
ListName = "PythonSDKList"
Category = 578615
Type = "Private"
Description = "This list was created with the PythonSDK"
ListClassification = "ExactTargetList"
}]
```

## ET\_Client 类

ET_Client 类负责访问 ExactTarget API 时所需的大多数步骤,包括检索适当的访问令牌、处理令牌状态以管理刷新以及确定 API 请求的适当端点。为了利用此类提供的优势,在整个会话中只使用一个此类实例。不要为每个请求创建新的 ET_Client 对象。

## 响应

Fuel SDK 对象上的所有方法都返回一个通用对象,该对象遵循相同的结构,无论调用类型如何。该对象包含一组常用的属性,用于显示有关请求的详细信息。

| 参数 | 描述 |
| --------- | --------------------------------------------------------------- |
| status | 表示调用是否成功的布尔值 |
| 代码 | HTTP 错误代码(SOAP 请求始终为 200) |
| 信息 | 出错时包含更多详细信息的文本值 |
| 结果 | 包含调用方法独有的详细信息的集合 |

获取方法还会返回一个额外的值来指示是否还有更多信息可用(可以使用 getMoreResults 方法检索该信息)

- moreResults - Boolean 值,表示在获取请求中是否有更多数据。


## 样本

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

样本列表

* [BounceEvent](https://github.com/ExactTarget/FuelSDK-Python/blob/master/objsamples/sample_bounceevent.py)
* [Campaign](https://github.com/ExactTarget/FuelSDK-Python/blob/master/objsamples/sample_campaign.py)
* [ClickEvent](https://github.com/ExactTarget/FuelSDK-Python/blob/master/objsamples/sample_clickevent.py)
* [ContentArea](https://github.com/ExactTarget/FuelSDK-Python/blob/master/objsamples/sample_contentarea.py)
* [DataExtension](https://github.com/ExactTarget/FuelSDK-Python/blob/master/objsamples/sample_dataextension.py)
* [Email](https://github.com/ExactTarget/FuelSDK-Python/blob/master/objsamples/sample_email.py)
* [List](https://github.com/ExactTarget/FuelSDK-Python/blob/master/objsamples/sample_list.py)
* [List > Subscriber](https://github.com/ExactTarget/FuelSDK-Python/blob/master/objsamples/sample_list_subscriber.py)
* [OpenEvent](https://github.com/ExactTarget/FuelSDK-Python/blob/master/objsamples/sample_openevent.py)
* [SentEvent](https://github.com/ExactTarget/FuelSDK-Python/blob/master/objsamples/sample_sentevent.py)
* [Subscriber](https://github.com/ExactTarget/FuelSDK-Python/blob/master/objsamples/sample_subscriber.py)
* [TriggeredSend](https://github.com/ExactTarget/FuelSDK-Python/blob/master/objsamples/sample_triggeredsend.py)
* [UnsubEvent](https://github.com/ExactTarget/FuelSDK-Python/blob/master/objsamples/sample_unsubevent.py)

## FuelSDK-Python 开发

如果您想为 FuelSDK-Python 项目做出贡献,请从 [GitHub 项目页面](https://github.com/ExactTarget/FuelSDK-Python) 获取代码。强烈推荐使用 [virtualenvwrapper](http://virtualenvwrapper.readthedocs.org/)。安装 virtualenvwrapper 后,您可以使用以下命令设置一个用于开发的沙箱。

```
git clone git@github.com:ExactTarget/FuelSDK-Python.git
mkvirtualenv FuelSDK-Python
cd FuelSDK-Python
pip install -r requirements.txt
```

这样,您将拥有一个包含所有依赖项的沙箱,用于在 FuelSDK-Python 上进行开发。

## 要求

Python 2.7.x



* pyjwt
* requests
* suds

### 自定义 Suds 更改(已弃用)

**注意**:Suds 现在在导入 FuelSDK 时会进行实时修补。您不再需要编辑库。请注意此更改。

可下载的默认 Suds 0.4 包需要进行一些小的修复,以便完全支持 Fuel SDK。请使用以下说明更新您的 suds 安装:

- 从 https://pypi.python.org/pypi/suds 下载 suds 包源码
- 打开位于解压缩文件中的文件:`suds\mx\appender.py`
- 在第 223 行,将出现以下行
```python
child.setText(p.get())
parent.append(child)
for item in p.items()
cont = Content(tag=item[0], value=item[1])
Appender.append(self, child, cont)
```

- 将这些行替换为
```python
child_value = p.get()
if(child_value is None)
pass
else
child.setText(child_value)
parent.append(child)
for item in p.items()
cont = Content(tag=item[0], value=item[1])
Appender.append(self, child, cont)
```

- 打开位于解压缩文件中的文件 `suds\bindings\document.py`
- 在读取第 62 行后添加以下行
```python
n += 1
```

- 添加以下行
```python
if value is None
continue
```
- 通过运行以下命令安装 Suds
```
python setup.py install
``

## 版权和许可
版权所有 (c) 2013 ExactTarget

许可协议为 MIT 许可协议(“许可”);除非遵守许可,否则不得使用本作品。您可以在 COPYING 文件中获取许可证副本。

除非适用法律要求或书面同意,否则在许可证下分发的软件按“原样”分发,不提供任何类型的保证或条件,无论是明示的还是暗示的。有关许可证的具体语言,请参阅许可证。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪一个,请了解更多关于安装包的信息。

源分发

FuelSDK-0.9.3.tar.gz (14.5 kB 查看散列值)

上传时间

由以下支持