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_count
和count
控制流的属性。要下载所有项目,像这样的东西可以
完成时间:
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
响应,客户端将自动尝试刷新身份验证令牌。