跳转到主要内容

适用于Python的ExactTarget Fuel SDK,针对Eventable进行了修改

项目描述

# FuelSDK-Python

ExactTarget Fuel SDK for Python

## 概述

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

## 安装

Python Fuel SDK可以通过使用[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`或声明环境变量,以便您可以输入在注册应用程序时提供的Client ID和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@ App Center")。


| 环境 | 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 Status: ' + str(response.status)
print 'Code: ' + str(response.code)
print 'Message: ' + str(response.message)
print 'Result Count: ' + str(len(response.results))
print 'Results: ' + 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 | 表示调用是否成功的布尔值 |
| code | HTTP 错误代码(对于 SOAP 请求始终为 200) |
| message | 包含更多详细信息的文本值,在出现错误时使用 |
| results | 包含调用方法特有的详细信息的集合。 |

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

- moreResults - 表示 Get 请求上是否有更多数据的布尔值。


## 示例

在 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)
* [数据扩展](https://github.com/ExactTarget/FuelSDK-Python/blob/master/objsamples/sample_dataextension.py)
* [电子邮件](https://github.com/ExactTarget/FuelSDK-Python/blob/master/objsamples/sample_email.py)
* [列表](https://github.com/ExactTarget/FuelSDK-Python/blob/master/objsamples/sample_list.py)
* [列表 > 订阅者](https://github.com/ExactTarget/FuelSDK-Python/blob/master/objsamples/sample_list_subscriber.py)
* [打开事件](https://github.com/ExactTarget/FuelSDK-Python/blob/master/objsamples/sample_openevent.py)
* [已发送事件](https://github.com/ExactTarget/FuelSDK-Python/blob/master/objsamples/sample_sentevent.py)
* [订阅者](https://github.com/ExactTarget/FuelSDK-Python/blob/master/objsamples/sample_subscriber.py)
* [触发性发送](https://github.com/ExactTarget/FuelSDK-Python/blob/master/objsamples/sample_triggeredsend.py)
* [退订事件](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 文件中获得许可证副本。

除非适用法律要求或经书面同意,否则在许可证下分发的软件按“现状”提供,不提供任何明示或暗示的保证或条件。有关许可权限和限制的具体语言,请参阅许可证。

项目详情


下载文件

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

源代码分发

EventableFuelSDK-0.1.4.tar.gz (14.6 kB 查看哈希值)

上传于 源代码

由以下支持