flattr restful api的python库实现
flattrclient的Python项目详细描述
python flattr是小额支付服务flattr的客户端库。它 实现flattr rest api的大多数方面。你可以用它来整合 flattr-支持您的python程序。例如为new创建things 博客文章。或者你写了一个播客,想自动 flattr(支持)每个下载的片段。
功能
- 创建和更新内容
- 删除内容
- 按ID取东西
- 搜索内容
- 列出已知用户的信息
- 列出你的东西
- 列出您的订阅
- 订阅内容
- 暂停/继续订阅
- 扁平/支撑物
安装
pipinstallflattr
用法
免责声明:下面的代码示例是python3。如果你用的是Python, 您必须将unicodes特别传递给flattrclient.things.Thing的属性。
首先。你需要一个身份验证令牌。实现取决于你, 只需要很少的python flattr帮助。
获取身份验证令牌的工作流
跟随authorization workflow。首先,register your app在你的 flattr上的用户配置文件,以获取client id和client secret。
使用此凭据,您可以设置API连接
>>>importflattrclient.oauth>>>auth_api=flattrclient.oauth.get()
您可以调用authorize来获取URL,您必须将用户指向。
>>>auth_api.authorize(CLIENT_ID,'flattr,thing,email,extendedread','http://localhost:8080')'https://flattr.com/oauth/authorize?scope=flattr%2Cthing%2Cemail%2Cextendedread&redirect_uri=http%3A%2F%2Flocalhost%3A8080&response_type=code&client_id=CLIENT_ID'
然而,你决定你需要的是scopes。
您可能想收听localhost:8080或使用的任何回调。 flattr将用户重定向到此url,并(成功时)向您发送code。 把这个捡起来拿通行证。这也是唯一一次,你需要 客户端机密。
>>>auth_api.set_auth(CLIENT_ID,CLIENT_SECRET)>>>auth_api.token(CODE,'http://localhost:8080')'XXXXX'
获取请求令牌的codean的整个过程不应该 时间太长了。不管怎样,如果你从 另一个终端窗口,并在交互会话中调用token。
使用python flattr
事实上。访问令牌是您唯一需要存储的东西。 >;从现在开始。你应该可以和flattr rest api通话。给予 这是一个尝试,得到用户的所有东西flattr
>>>importflattrclient.api>>>api=flattrclient.api.get(AUTH_TOKEN)>>>f=api.users('flattr')>>>f<flattrclient.user.Userflattr>>>>things=list(f.get_things())[<flattrclient.things.ThingBielefeldgibtswirklich!ZumindestimFußball>,<flattrclient.things.ThingTweetby@Flattr,25Feb>,...]
那很有趣。但是发生了什么?
首先,我们使用flattrclient.api.get介绍了flattr和我们之间的会话。 这很可能总是第一件事,你会的。目前我使用 requests.sessions.Session在后台,没有任何池。
然后我们创建一个轻量级的flattrclient.user.User-对象。这不起作用 任何API调用。因此,如果有输入错误,下一个调用(get_things)将导致 错误。如果需要,要为用户执行api调用,请使用 api.users.get('flattr')。
对f.get_things()的nect调用以生成器的形式返回所有内容。所以让 这里比较冗长,我们把它转换成一个列表。所有的事情?不是真的。由 默认情况下,api每页只返回30个结果。但是您可以使用count和 page来覆盖这个。
>>>f.get_things(count=10,page=2)
你得到结果的第2页。每一页都有10个结果。
让我们回到api。这个api包含许多不同的 传递request.session.Session对象的API。
api.things:与flattrs things api交谈。get、lookup和search的 东西。
api.users:与flattrs用户api交谈。__call__和get,如上所述。
api.authenticated:与flattrs认证的api交谈。意思是…列出 身份验证用户的资料。get_activities,get_flattrs,get_things 和get_subscriptions。
然而。您可能想在flattr上创建一个新对象。
>>>mything=api.things.new(url='http://example.com',title='crazy title')>>>mything<flattrclient.things.Thingcratytitle>>>>mything.description='Some more context'>>>mything.commit()
您应该使用api.things.new获取^{tt1}的新对象$ 因为它再次负责设置会话。
如果你想更新你的东西。
>>>mythings=list(api.authenticated.get_things())>>>some_thing=mythings[0]>>>some_thing.title='Some new Title'>>>some_thing.commit()
您不仅可以创建或更新自己的things,还可以创建或更新一些 东西。用户获得的或通过api.things获取的每个东西都是可支持的。
>>>thing=api.things.get('4085245')>>>thing<flattrclient.things.Thingchrigl/python-flattronGitHub>>>>thing.support(){...}
仅仅支持是不够的?订阅该内容
>>>thing=api.things.get('4085245')>>>thing<flattrclient.things.Thingchrigl/python-flattronGitHub>>>>thing.subscribe(){...}
T型这里还有一个unsubscribe和一个pause_subscription,这是一个切换 暂停并继续此订阅。
可以在不同的东西上使用help。更有用的是 使用python3,因为在内部使用了一些修饰符,这会导致 *args, **kwargs-python2中的参数列表。
问题
欢迎您在github上提交问题或请求。
许可证
apache许可证2.0