如何构造oauth api调用?

2024-10-03 04:31:36 发布

您现在位置:Python中文网/ 问答频道 /正文

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


Tags: 数据key用户comapi应用程序httpsecret
2条回答

如果您不介意使用Python,我可以推荐rauth。这里没有Tumblr示例,但是OAuth 1.0/a和OAuth 2.0都有real world, working examples。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'])

完全公开,我坚持劳思。在

我找到了答案。最后我使用perl中的OAuth::Consumer连接到tumblr API。这是到目前为止我找到的最简单的解决方案,而且效果很好。在

相关问题 更多 >