昨天下午突发灵感,想整个服务把pocket上的东西转发到kindle上读,于是看了看pocket的api文档就上路了。
加上昨天下午的一个多小时和今天上午的两个小时,pocket的授权和获取所有项的功能算完成了。先短暂记录一下。
pocket的授权用是的oauth v3,官方文档上写的是6步,最后写成代码后,我觉得只是3步:
1. 在pocket上获取consumer_key
1. 用consumer_key来获取request_token
1. 用consumer_key和request_token来获取access_token
三步完事后,就可以用consumer_key和access_token来对用户的内容进行操作了。代码写得随意,但意思应该能看出来:
import requests as rs
import json
CONSUMER_KEY = u'your consummer key'
BASE_URL = u'https://getpocket.com/v3'
def _request(url, data):
headers = {
'content-type': 'application/json; UTF-8',
'X-Accept': 'application/json',
}
r = rs.post(BASE_URL + url, data=json.dumps(data), headers=headers)
if r.status_code != 200:
return None
return r.json()
def get_request_code():
data = {
'consumer_key': CONSUMER_KEY,
'redirect_uri': '/manage',
}
r = _request('/oauth/request', data)
if not r: return None
return r['code']
def get_access_info(req_code):
data = {
'consumer_key': CONSUMER_KEY,
'code': req_code,
}
r = _request('/oauth/authorize', data)
if not r:
return None, None
return r['access_token'], r['username']
if __name__=='__main__':
req_code = get_request_code()
print req_code
print get_access_info(req_code)
说实话,在写这个东西的时候,我心里对oauth是有点打怵的,因为以前曾经看过介绍oauth的文档,那叫一个长。。。。但其实原理很复杂,实际用起来的时候还是非常容易的。
后面看到获取文档内容的时候,需要一个article view api,官方文档上写着这个功能不公开,如果想用的话可以申请,随手写了个email发过去,估计肯定审核不过,不过官方上推荐另一个玩意:diffbot,看网站介绍说是比pocket还要强大,在google上看了一些关于这个的访谈,算法还是很有意思的,居然是用计算机视觉技术实现的,不过这东西是收费的,而且相当的贵,所以还是先等等pocket的回信吧-____-
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。