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 idclient 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个结果。但是您可以使用countpage来覆盖这个。

>>>f.get_things(count=10,page=2)

你得到结果的第2页。每一页都有10个结果。

让我们回到api。这个api包含许多不同的 传递request.session.Session对象的API。

api.things:与flattrs things api交谈。getlookupsearch的 东西。

api.users:与flattrs用户api交谈。__call__get,如上所述。

api.authenticated:与flattrs认证的api交谈。意思是…列出 身份验证用户的资料。get_activitiesget_flattrsget_thingsget_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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java通过Spring MVC web应用程序向客户端发送文本文件   java是否可以在运行时动态实例化DAO类?   调用VB。来自Java的net函数   java在Android中通过单击打开特定文件夹   java如何使用maven pom。xml标识非标准项目结构中的testng测试用例?   java为什么FOP在大文件上崩溃?   Architecture python+flask和spring boot+java   java Kafka工具根本没有启动Ubuntu 19.10   如何使用Eclipse运行Java USB API for Windows   java如何在Eclipse中查看J2EE预览服务器/容器的日志/控制台?   网页抓取是否可以使用Java crawler crawler4j暂停和恢复抓取?   java当我第二次按下按钮时,应用程序停止工作   带有偏移量和限制的java SQLite分页问题   java如何在OSX mavericks中将端口80转发到8080   java从泛型方法调用非泛型方法   java My代码未按预期工作。十进制输出不是它应该的样子   节点。java中的js加密(jasypt)和nodejs中的解密   java乘法表不工作数组索引超出范围   java将JDBC与Firebirdsql连接起来