Feedly API的轻量级客户端(https://developers.feedly.com)。

feedly-client的Python项目详细描述


python api客户端

feedly api的python客户端代码https://developers.feedly.com/

初始化客户端

要初始化客户端,首先需要访问令牌。只是随便玩玩, 登录feedly并转到console。然后找到 feedlyToken属性。这是您的Web访问令牌。你可以提出要求 但它会过期的。它不适合构建应用程序, 但会让你走的。

如果你真的想建立一个应用程序,你可能想得到一个 developer token。查看页面了解更多详细信息。

如果假设您将令牌值保存在主目录中的access.token文件中,则可以 初始化客户端如下:

from pathlib import Path
from feedly.api_client.session import FeedlySession

token = (Path.home() / 'access.token').read_text().strip()
sess = FeedlySession(token)

客户机是轻量级的——你可以在你的程序生命周期中保留一个客户机, 或者你可以在需要时创建一个新的。把它留在身边会更有效率。如果你 根据需要选择创建客户机,应该在构造函数中传入用户ID, 否则将引发一个/v3/profile请求。

面向API的使用

您可以使用FeedlySession对象来发出任意api请求。例如:

sess.do_api_request('/v3/feeds/feed%2Fhttp%3A%2F%2Fblog.feedly.com%2Ffeed%2F')

------------------

{
  "id": "feed/http://blog.feedly.com/feed/",
  "feedId": "feed/http://blog.feedly.com/feed/",
  "title": "Feedly Blog",
  ...
}

面向对象用法

检索文章

或者,您可以使用面向对象的代码,这有助于常见的使用模式。 例如,您可以列出您的用户类别:

sess.user.get_categories()

------------------

{'comics': <UserCategory: user/xxx/category/comics>,
 'econ': <UserCategory: user/xxx/category/econ>,
 'global.must': <UserCategory: user/xxx/category/global.must>,
 'politics': <UserCategory: user/xxx/category/politics>,
}

其中xxx是您的实际用户ID。

没有必要预先列出类别,如果你知道存在的类别,你可以。 在飞行中获得一个:

sess.user.get_category('comics'))

------------------

<UserCategory: user/xxx/category/comics>

访问条目(文章)

如果需要访问条目或条目id,可以通过stream_contents轻松地对它们进行流式处理。 和stream_ids,分别是:

with FeedlySession(auth_token=token) as sess:
    for eid in sess.user.get_category('politics').stream_ids():
         print(eid)

------------------

Dz51gkBgvGUvFOfTATCYLB2uqVaBIaGGazzxpZh2WL0=_16549c827dd:1645ba:3da9d93
Dz51gkBgvGUvFOfTATCYLB2uqVaBIaGGazzxpZh2WL0=_16549c827dd:1645bb:3da9d93
Z/Hzx8NYfSSE8sweA2v5+4r5h7HC5ALdE2YGYB8MYbQ=_1654a26f3fe:79d9ef9:6f86c10b
...

注意StreamOptions类。有重要的max_countcount 控制流的属性。要下载所有项目,像这样的东西可以 完成时间:

opts = StreamOptions(max_count=sys.maxsize) # down all items that exist
opts.count = sys.maxsize # download as many items as possible in every API request
with FeedlySession(auth_token=token) as sess:
    for eid in sess.user.get_category('politics').stream_ids(opts):
         print(eid)

标注现有条目

with FeedlySession(auth_token=token) as sess:
    sess.user.get_tag('politics').tag_entry(eid)

零星费用

饲料原料药的价格有限。不要同时发出多个请求。你可以下载 一次有不少条目,请参阅上一节了解详细信息。一旦你得到利率限制, 客户端将停止任何尝试的请求,直到您有可用的配额。

要调试,请将日志级别设置为DEBUG。这将在每个api请求上打印日志消息。

代币管理

以上示例假定auth(access)令牌有效。但是这些令牌确实会过期。相反 在传递auth令牌本身时,可以创建一个feedly.session.Auth实现来刷新 身份验证令牌。已经提供了基于文件的实现(FileAuthStore)。完成后 如果遇到401响应,客户端将自动尝试刷新身份验证令牌。

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

推荐PyPI第三方库


热门话题
Java ClientServersocket只能发送1个文件   使用jCUDA实现复杂矩阵的java操作   映射是否存在独立于持久性技术的Java数据API   java Android图像在ExiFinInterface不工作的情况下旋转   java api通过串口发送文件   java使用Restcontroller将空值转换为空字符串   如何在Java中指定网络接口   在一个不工作的安卓系统中,java在另一个文本视图的右边膨胀文本视图   Java JSON解析器错误   java单空间Swing文本   我在eclipse中制作的java游戏在导出后停止加载我的资产   java将给定字符串转换为long,并在解码时返回相同的字符串   java在安卓应用程序中使用dll库   javascript映射json对象并创建随机数组   java JMS主题生存时间   在Swing中的JTextArea上使用setText时出现java死锁   java JFXtra议程是否只在特定时间之间显示?