HipChat的v2 API包
hypchat的Python项目详细描述
hipchat的v2 JSON REST API的python包。它基于v2的导航性和自我声明。
概念
HypChat中有两种基本类型:Linker和RestObject它们不是直接实例化的,而是作为其他对象的引用创建的
链接器
表示未遵循的引用的简单可调用函数。
- l.url
- 此对象指向的URL
- l()
- 调用Linker将执行请求并返回RestObject
restObject
dict的子类包含链接和操作的附加功能。
链接
作为v2 api的一部分,所有对象都有一个带有对其他对象的引用的links属性。这用于创建Linker对象作为属性。
例如,所有对象都有一个名为self的链接。这可以被引用为:
obj.self
通过调用它执行的请求:
obj.self()
如果需要Title Expansion,只要经过一个要扩展为expand关键字参数的事物列表。
其他操作
许多v2类型定义了其他类型,例如房间有消息传递、设置主题、获取历史记录和邀请用户进入房间的方法。这些是作为子类的方法实现的。完整的列表在Type List中。
时区处理
hypchat通过dateutil模块始终使用awaredatetime对象。但是,HipChat API普遍使用UTC
对于采用datetime的方法,如果给定了一个纯对象,则假定它是utc格式的。如果这不是您的意思,dateutil.tz有一个非常好的timezones选择。
用法
首先,使用令牌创建一个HypChat对象
hc = HypChat("mytoken")
如果使用HipChat服务器
hc = HypChat("mytoken", endpoint="https://hipchat.example.com")
有几个根链接:
rooms = hc.rooms() users = hc.users() emots = hc.emoticons() caps = hc.capabilities()
此外,hypchat对象还有创建对象和直接引用基本类型的方法。
例如,您可以执行以下操作:
for room in (r for r in hipchat.rooms(expand='items') if r['last_active'] < datetime.datetime(2013, 12, 1)): room.owner.message("Your room is dead; maybe archive it")
因为room.owner是一个用户存根,而不仅仅是一个泛型对象(房间对象不是存根,因为使用了expand关键字)。
下载历史记录非常简单:
list(HypChat(token).get_room(id).history(datetime.datetime.utcnow()).contents())
请注意,这可能会吃掉许多对大房间的要求。
控制台
如果调用python -m hypchat,将出现一个交互式提示(如果可用,则使用IPython)环境将包含hipchat,一个HypChat对象的实例。令牌从~/.hypchat、/etc/hypchat或环境变量HIPCHAT_TOKEN中提取
键入列表
待办事项列表
- API链接