[关闭]
@zhengyuhong 2016-03-28T01:45:23.000000Z 字数 2425 阅读 1238

Pocket Developer API 应用

Pocket requests python

需求背景

近期写了一个爬虫脚本爬知乎上的收藏夹问题,本来想通过smtp协议发送链接到add@getpocket.com,但是每日的发信量有限制,因此借助于Pocket Developer API 使用开发接口添加新的网页到我的pocket帐号。

创建应用

Pocket开发者页面创建应用,我的应用为testapp

API

[API概况](https://getpocket.com/developer/docs/overview

获取consumer_key

My Apps选择PLATFORM为WEB对应的consumer_key

testapp Web 52915-d3b657e712e5b97c5c15ddf5

获取request_token

  1. import sys
  2. import requests
  3. reload(sys)
  4. sys.setdefaultencoding('utf8')
  5. if __name__ == '__main__':
  6. app_name = 'testapp'
  7. consumer_key = '52915-d3b657e712e5b97c5c15ddf5'
  8. hdr = {}
  9. hdr['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8'
  10. hdr['X-Accept'] = 'application/x-www-form-urlencoded'
  11. hdr['Host'] = 'getpocket.com'
  12. param = {}
  13. param['consumer_key'] = consumer_key
  14. param['redirect_uri'] = 'https://getpocket.com'
  15. url = 'https://getpocket.com/v3/oauth/request'
  16. r = requests.post(url, data=param, headers=hdr)
  17. print r.text
  18. #code=f78757af-e838-0864-bece-6d32c8
  19. #f78757af-e838-0864-bece-6d32c8 就是对应的request_token
  20. request_token = r.text.split('=')[1]
  21. verify_url = 'https://getpocket.com/auth/authorize?request_token=%s&redirect_uri=getpocket.com' % request_token
  22. print verify_url

用户验证

将上述verify_url链接在浏览器中打开,点击“接受”进行授权,允许testapp获取对应帐号的权限

获取access_token

用户验证后,然后将对应的code(request_token)保存,用code获取access_token,然后对code对应的帐号进行增减内容。
获取access_token代码如下:

  1. import sys
  2. import requests
  3. reload(sys)
  4. sys.setdefaultencoding('utf8')
  5. if __name__ == '__main__':
  6. app_name = 'testapp'
  7. consumer_key = '52915-d3b657e712e5b97c5c15ddf5'
  8. hdr = {}
  9. hdr['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8'
  10. hdr['X-Accept'] = 'application/x-www-form-urlencoded'
  11. hdr['Host'] = 'getpocket.com'
  12. param = {}
  13. code = '4e675a5f-d135-2c7b-c150-9a5e49'
  14. url = 'https://getpocket.com/v3/oauth/authorize'
  15. param['code'] = code
  16. param['consumer_key'] = consumer_key
  17. r = requests.post(url, data=param, headers=hdr)
  18. print r.text
  19. # access_token=ce756104-a463-defb-0b6b-682045&username=zhengyuhong

增加内容

  1. import sys
  2. import requests
  3. reload(sys)
  4. sys.setdefaultencoding('utf8')
  5. if __name__ == '__main__':
  6. app_name = 'testapp'
  7. consumer_key = '52915-d3b657e712e5b97c5c15ddf5'
  8. hdr = {}
  9. hdr['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8'
  10. hdr['X-Accept'] = 'application/x-www-form-urlencoded'
  11. hdr['Host'] = 'getpocket.com'
  12. access_token='ce756104-a463-defb-0b6b-682045'
  13. param = {}
  14. param['url'] = 'https://www.zhihu.com/question/28116784/answer/46900264'
  15. param['tag'] = '知乎,美女'
  16. param['access_token'] = access_token
  17. param['consumer_key'] = consumer_key
  18. url = 'https://getpocket.com/v3/add'
  19. r = requests.post(url, data=param, headers=hdr)
  20. print r.text

本文草稿地址
参考链接

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注