我正在尝试在http://api.tumblr.com/v2/user/likes url 上为用户获取 tumblr“喜欢”的帖子。我已经在 tumblr 注册了我的应用并授权该应用访问用户的 tumblr 数据,所以我有oauth_consumer_key
、
oauth_consumer_secret
、oauth_token
和oauth_token secret
。但是,当我进行 api 调用时,我不确定如何处理这些细节。我正在尝试创建一个仅输出 json 以供进一步处理的命令行脚本,因此 bash (cURL)、Perl 或 python 中的解决方案将是理想的。
问问题
418 次
2 回答
1
好吧,如果您不介意使用 Python,我可以推荐rauth。没有 Tumblr 示例,但有真实世界的 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'])
完全披露,我保持沉默。
于 2013-03-29T00:25:02.423 回答
0
我好像找到了答案。我最终在 perl 中使用 OAuth::Consumer 连接到 tumblr API。这是迄今为止我发现的最简单的解决方案,并且可以正常工作。
于 2013-03-28T17:46:56.040 回答