本项目为 Requests 提供了第一流的 OAuth 库支持。
OAuth 1 看起来可能过于复杂,而且确实有一些怪癖。幸运的是, requests_oauthlib 隐藏了大部分这些问题,让您可以专注于手头的任务。
使用 requests_oauthlib 访问受保护的资源非常简单:
>>> from requests_oauthlib import OAuth1Session
>>> twitter = OAuth1Session('client_key',
client_secret='client_secret',
resource_owner_key='resource_owner_key',
resource_owner_secret='resource_owner_secret')
>>> url = 'https://api.twitter.com/1/account/settings.json'
>>> r = twitter.get(url)在访问资源之前,您需要从您的提供商(例如 Twitter)获取一些凭据,并获得用户授权,以便为您检索资源。您可以在 RTD 上的完整 OAuth 1.0 工作流程指南中阅读所有这些内容。
OAuth 2 通常比 OAuth 1 简单,但有更多的风格。最常见的是授权码授予(Authorization Code Grant),也称为 WebApplication 流程。
在获得访问令牌后获取受保护的资源可以非常简单。但是,在访问资源之前,您需要从您的提供商(例如 Google)获取一些凭据,并获得用户授权,以便为您检索资源。您可以在 RTD 上的完整 OAuth 2.0 工作流程指南中阅读所有这些内容。
要安装 requests 和 requests_oauthlib,您可以使用 pip:
pip install requests requests-oauthlib