因此,有一个代码使用xAuth身份验证来调用tumblr API方法:
import urllib
import urlparse
import oauth2 as oauth
consumer_key = "..."
consumer_secret = "..."
consumer = oauth.Consumer(consumer_key, consumer_secret)
client = oauth.Client(consumer)
resp, content = client.request('https://www.tumblr.com/oauth/access_token', "POST", urllib.urlencode({
'x_auth_mode': 'client_auth',
'x_auth_username': '...@yandex.ru',
'x_auth_password': '...'
}))
token = dict(urlparse.parse_qsl(content))
print token
token = oauth.Token(token['oauth_token'], token['oauth_token_secret'])
client = oauth.Client(consumer, token)
response, data = client.request('http://api.tumblr.com/v2/blog/good.tumblr.com/followers', method='GET')
print data
它适用于需要OAuth身份验证的tumblr API用户方法。 但是当我尝试使用OAuth身份验证(例如/粉丝)调用任何Blog方法时,它失败了:
{"meta":{"status":401,"msg":"Not Authorized"},"response":[]}
除了一件事。如果我使用我的博客名称作为{base-hostname}参数,它的工作没有任何错误。 奇怪的。怎么可能?代码有问题吗?
答案 0 :(得分:1)
那是因为您的OAuth访问令牌授予您访问博客的权限。 OAuth无法授予您访问您不拥有的博客方法的权限,因为您可以向他们发帖。
答案 1 :(得分:0)
当你发出POST请求时,enctype必须是“multipart / form-data”。
我在使用Zend_Oauth(php)时遇到了同样的问题,但现在已经解决了。