Skip to main content
 首页 » 编程设计

python之如何构建 oauth api 调用

2025年05月04日9lonelyxmas

我正在尝试为 http://api.tumblr.com/v2/user/likes 的用户获取 tumblr“喜欢”的帖子网址。我已经在 tumblr 注册了我的应用程序并授权该应用程序访问用户的 tumblr 数据,所以我有 oauth_consumer_key, oauth_consumer_secret、oauth_token 和 oauth_token secret。但是,我不确定在调用 api 时如何处理这些详细信息。我正在尝试创建一个只输出 json 以供进一步处理的命令行脚本,因此 bash (cURL)、Perl 或 python 中的解决方案将是理想的。

请您参考如下方法:

好吧,如果你不介意使用 Python,我可以推荐 rauth .没有 Tumblr 示例,但有 real world, working examples对于 OAuth 1.0/a 和 OAuth 2.0。 API旨在简单明了。我不确定您可能还有什么其他要求,但也许值得一试?

如果您有兴趣,可以引用以下示例:

from rauth import OAuth1Service 
 
import re 
import webbrowser 
 
# Get a real consumer key & secret from http://www.tumblr.com/oauth/apps 
tumblr = OAuth1Service( 
    consumer_key='gKRR414Bc2teq0ukznfGVUmb41EN3o0Nu6jctJ3dYx16jiiCsb', 
    consumer_secret='DcKJMlhbCHM8iBDmHudA9uzyJWIFaSTbDFd7rOoDXjSIKgMYcE', 
    name='tumblr', 
    request_token_url='http://www.tumblr.com/oauth/request_token', 
    access_token_url='http://www.tumblr.com/oauth/access_token', 
    authorize_url='http://www.tumblr.com/oauth/authorize', 
    base_url='https://api.tumblr.com/v2/') 
 
request_token, request_token_secret = tumblr.get_request_token() 
 
authorize_url = tumblr.get_authorize_url(request_token) 
 
print 'Visit this URL in your browser: ' + authorize_url 
webbrowser.open(authorize_url) 
authed_url = raw_input('Copy URL from your browser\'s address bar: ') 
verifier = re.search('\oauth_verifier=([^#]*)', authed_url).group(1) 
 
session = tumblr.get_auth_session(request_token, 
                                  request_token_secret, 
                                  method='POST', 
                                  data={'oauth_verifier': verifier}) 
 
user = session.get('user/info').json()['response']['user'] 
 
print 'Currently logged in as: {name}'.format(name=user['name']) 

完全公开,我保持原样。