我正在尝试使用请求-oauth库为Python向Pocket发出请求。不幸的是,使用这个库的描述不是很全面,我也是新的使用oauth2。一般来说,我理解它背后的过程,但仍然不能转换这得到请求的工作。
我正在寻找的是更好的文档或一些全面的例子来使用request_oauth2。有人知道吗?
特别是我不明白什么redirect_url使用时,请求只是由一个脚本在我的本地机器,而不是一个web应用程序。
我能找到的最好的信息来源是Github上的requests-oauth2项目的文档(当然还有源代码):
- https://github.com/maraujop/requests-oauth2
该文档还包含一个"有趣的阅读"部分,其中包含一些额外教程的链接。有关OAuth2流程流的总体概述,请查看本教程:
- http://apiwiki.poken.com/authentication/oauth2
当然还有"老式的"python-oauth2库,它有很好的文档:
- https://github.com/simplegeo/python-oauth2
该模块的文档包含一个Twitter API的三条腿身份验证示例。
关于redirect_url字段:一般情况下,您可以在这里使用任何URL(甚至是本地地址,如http://localhost/my/endpoint
), OAuth服务器将在对客户端进行身份验证后简单地向客户端发出HTTP 303重定向请求,然后在客户端进行处理。然而,一些API服务(比如Twitter)会要求你事先指定redict_url,并且会拒绝一些url(比如基于ip的url)。
如果您喜欢请求Python库,我建议您使用requests-oauthlib。它有很棒的文档和活跃的开发者。
通常你在API提供商网站上的应用程序设置中设置redirect_url
。看起来Pocket只支持基于浏览器的身份验证,所以你需要一个web浏览器来生成一个访问令牌,然后你可以嵌入到你的脚本中。