用于与MediaMath的Terminalone API交互的包。
TerminalOne的Python项目详细描述
终端python
用于mediamath的api的python库。这个库由类组成 用于处理T1 API和管理实体。它是为python编写的 2.7和>;=3.3。与python 3的兼容性是通过捆绑实现的 模块六个
API文档可在[<;https://apidocs.mediamath.com/>; <;https://apidocs.mediamath.com/>;]{.title ref}.
安装
在虚拟环境中使用pip安装很简单:
$ pip install TerminalOne
或者,将存储库的最新标记下载为tarball或 压缩文件并运行:
$ python setup.py install
执行和管理API
服务对象
类terminalone.t1
(用户名=无
,密码=无
,
api_key=none
,client_secret=none
,auth_method=none
,
会话id=无
,环境="生产"
,API基础=无
,
令牌=无
,令牌更新程序=无
)
这个包的起点。身份验证和会话,实体 检索、创建等都在这里处理。参数:
- 用户名:有效T1用户的用户名(即,在 [<;https://t1.mediamath.com>; <;https://t1.mediamath.com>;]{.title ref}}.
- 密码:对应T1用户的密码
- api_key:在mediamath的开发人员处生成的经批准的api key 门户
- client_secret:用于OAuth2身份验证的client secret
- 会话id:对于接收会话id而不是 用户凭据,例如T1的"应用"选项卡中的应用。API键 应该还是P提供。
- auth_method:对应于 验证要使用的会话。当前的"cookie"和 支持"OAuth2"。通常会检测到身份验证方法, 所以这可以写下来。(v1.2.0中的新省略!)
- 令牌:会话生成的dict oauth2令牌。如果你有 一个web应用程序,您可以在浏览器会话中存储令牌,然后 使用它生成一个新的T1会话。请参阅文档 示例。
- token_updater:带有一个参数的函数,token,用于 在自动令牌刷新时更新令牌数据库。如果没有 如果令牌具有 被刷新了。此警告将在令牌中携带令牌 参数。
- 可以提供环境或API基础来指定 请求继续。
T1 Python包括对资源所有者代码授权的支持。包括一个 客户ID和密码以及您的凭据:
>>> t1 = T1(auth_method='oauth2-resourceowner', client_id="my_client_id", client_secret="my_secret", username="my@user", password="mypass")
如果您有一个特定的api库(例如,如果您正在测试
(注意:沙盒环境还没有
可用),您可以将api_base
关键字与域一起使用。为了
生产端点,无论是环境
还是api_base
都不应该是
提供:
>>> t1 = terminalone.T1("myusername", "mypassword", "my_api_key", api_base="myqaserver.domain.com", auth_method="cookie")
如果接收到(克隆的)会话ID,例如 应用程序,您将没有用户凭据来登录。相反, 提供会话ID和API密钥:
>>> t1 = terminalone.T1(session_id="13ea5a26e77b64e7361c7ef84910c18a8d952cf0", api_key="my_api_key")
Cookie身份验证(用户名/密码)存在,但不建议用于 使用。
>>> import terminalone >>> t1 = terminalone.T1("myusername", "mypassword")
获取实体和集合
实体和集合检索。参数:
t1.获取
(集合,实体=无
,子项=无
,限制=无
,
包括=无
,满=无
,页面限制=100
,
页面偏移量=0
,排序依据="id"
,全部获取=错误
,
父项无
,查询=无
,计数=假
)
- 收藏:T1收藏,例如"广告商"
- 实体:从T1检索的实体的整数ID
- child:特定实体的子对象,例如
"dma"
,"acl"
- limit:dict查询关系实体,例如
{"广告客户":123456}
- 包括:str/关系列表:
- 字符串,例如
t1.get('广告客户',include='代理')
- 横向关系列表,例如
t1.get('广告客户',include=['代理','广告服务器')
- 层次关系的列表/字符串列表,例如
t1.get('广告客户',include=[['代理','组织',]
t1.get('广告客户',include=[['代理','组织','广告服务器']
- 字符串,例如
- full:检索多个实体时,指定要
返回的完整记录。例如
"活动"
(返回活动实体的完整记录)true
(返回的所有实体的完整记录),["活动","广告客户"]
(活动和 广告商返回)
- 页限制和页偏移处理分页。页面限制 指定一次返回的实体数、默认值和最大值 100。page_offset指定从哪个实体开始 页,
- 排序方式:排序顺序。默认
"id"
。例如,"-id"
,"name"
- get_all:是检索查询的所有结果,还是仅检索 一页纸。与页面限制互斥m>页面偏移量
- parent:仅返回具有此
父id
的实体。用于观众席
- 查询:搜索参数。注意:使用
查找要简单得多 而不是
get
,允许find
构造查询。 - count:bool将实体数作为第二个参数返回
- 其他参数:附加的、特定于服务的参数 通过。
|引发:terminalone.errors.clienterror
如果页限制>;100,
terminalone.errors.apierror
on>;399 http状态代码。
|返回:如果指定了单个实体,则返回单个实体
对象。如果有多个实体,则生成每个实体的生成器。
收藏
>>> advertisers = t1.get("advertisers") >>> for advertiser in advertisers: ... print(advertiser) ... Advertiser(id=1, name="My Brand Advertiser", _type="advertiser")
返回生成器超过前100个广告商(如果用户
只能访问更少的),按ID升序排列。每个实体是
有限对象,仅包含id
,name
和(
仅包含
表示API返回的类型,在本例中为"广告客户")。
>>> ag_advertisers = t1.get("advertisers", ... limit={"agency": 123456}, ... include="agency", ... full="advertiser") >>> for advertiser in ag_advertisers: ... print(advertiser) ... Advertiser(id=1, name="My Brand Advertiser", agency=Agency(id=123456, name="Operating Agency", _type="agency"), agency_id=123456, status=True, ...)
在代理ID 123456内生成超过100个广告商。每个 广告客户将其母代理对象作为一个属性。这个 广告客户对象是完整的实体,因此返回所有字段。 代理对象是有限的,与广告商有相同的领域 上一个示例。
>>> campaigns, count = t1.get("campaigns", ... get_all=True, ... full=True, ... sort_by="-updated_on") >>> print(count) 539 >>> for campaign in campaigns: ... print(campaign) Campaign(id=123, name="Summer Acquisition", updated_on=datetime.datetime(2015, 4, 4, 0, 15, 0, 0), ...) Campaign(id=456, name="Spring Acquisition", updated_on=datetime.datetime(2015, 4, 4, 0, 10, 0, 0), ...) ...
生成器覆盖用户可访问的每个活动,按
上次更新的降序。第二个参数是整数
API返回的已检索的活动。get_all=true
删除
需要担心分页---它是由sdk内部处理的。
$ pip install TerminalOne0
唯一的目的是获得用户可访问的广告商数量。
使用page_limit=1
最小化不必要的资源,并分配给
丢弃检索到的单个实体。
搜索实体
通过关系id限制实体是限制实体的一种方法,但是我们
也可以使用find
:
t1.查找
(集合,变量,运算符,候选项,
**kwargs)
- collection:T1 collection,与get使用相同
- 变量:要查询的字段,例如
名称
- 运算符:算术运算符,例如
"<;"
- 候选值:查询值,例如"jonsmith*"
- kwargs:要传递到
get
的其他关键字参数。所有 适用于get的关键字参数也适用于此处。
模块终端。过滤器
输入
空
非空
等于
不等于
更大
大于或等于
更少
小于或等于
大小写字符串
$ pip install TerminalOne1
以"绿色"命名的所有创意的生成器。包括 概念. < /P>
$ pip install TerminalOne2
活动ID 123、234和345上的生成器。注意使用时
terminalone.filers.in
,变量自动识别,以便
论点实际上被忽略了。此外,候选人必须是
整数标识。
$ pip install TerminalOne3
使用非空关键字字段生成前100个像素以上的图像。
$ pip install TerminalOne4
活动ID 123456中的活动策略。
实体
可以使用get
检索特定实体,实体id为
第二个参数,或使用实体
关键字。然后您可以访问
该实体的属性使用实例属性:
$ pip install TerminalOne5
类terminalone.entity
设置(属性)
set将对象属性
中的所有数据映射到 实体
保存(数据=无)
:保存实体。如果提供了数据,请发送。通常与 没有参数。
(注意:通常与子类交互,而不是与"实体"交互`` 本身)
如果出于某种原因,您需要像字典一样访问对象(用于
例如,如果需要遍历字段或转储到csv,则
方法get_properties()
可用。但是,您不应该修改
\u属性
直接,因为它会导致不正确的行为。
一旦有了实例,就可以修改它的值,然后保存它
回来。返回值none
表示成功。否则,错误是
上升,
$ pip install TerminalOne6
通过调用实例上的t1.new
创建新实体。
T1.新建
(集合,报表=无,属性=无)
- 收藏:T1收藏,同上
- 报告:新的报告对象;在报告中讨论
- 属性:要传递到新对象的属性。
$ pip install TerminalOne7
properties
是一个可选的映射对象,具有要传递的属性
在。可以使用对象的字符串表示形式(例如
"concept"
以上);或者,可以从
终端。型号
:
$ pip install TerminalOne8
子实体
要检索子实体(例如, 要使用mediamath的reports api,请使用 类 这是一个元数据对象,可用于检索有关
哪些报告可用。 您可以通过调用
这只是通往
您可以从 有关这些参数的更多信息可以找到
这里 我们为什么不直接导入对象类呢?例如,为什么
这不管用吗? 这里的答案是,我们需要保持一个共同的会议,以便我们可以
在请求之间共享会话信息。这允许你与
许多对象,只传递一次身份验证信息。 有关API工作流或此库的问题,请发送电子邮件
[<;开发人员@mediamath.com>;
<;mailto:developers@mediamath.com">developers@mediamath.com>;]{.title ref}
Mediamath 2015-2017版权所有。保留所有权利。/users/:id/permissions
),
在对T1的调用中包含子参数
$ pip install TerminalOne
9
报告
t1.new
:$ python setup.py install
0
terminalone.report
元数据
可用报表或单个报表的元数据。
在第一次调用时计算(发出API请求);缓存以备将来使用
电话:参数
请求参数字典设置(数据)
使用映射对象设置请求参数数据
报表uri(报表)
获取报表的uri存根get(as_dict=false)
get report data(需要调用
报告名称)。返回标题和csv.reader。如果是
如果为true,则返回数据为
csv.dictreader
$ python setup.py install
1
报表.报表uri
:$ python setup.py install
2
report.metadata[报告]['uri_data']
。从
最好假设名称与
树桩。通过实例化
它:$ python setup.py install
3
report.metadata中访问有关此报表的元数据
财产也是。若要获取数据,请首先使用
report.set
并使用report.get
方法,该方法返回一个元组
(标题,数据)
:$ python setup.py install
4
headers
是一个标题列表,而data
是一个csv.reader
对象。
当前版本中不存在类型转换,但暂时
计划未来的日期。附录
$ python setup.py install
5
$ python setup.py install
6
< H1> CONTACT < /H1 >版权所有
推荐PyPI第三方库