3

したがって、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 認証 (/followers など) でブログ メソッドを呼び出そうとすると失敗します。

{"meta":{"status":401,"msg":"Not Authorized"},"response":[]}

1つのことを除いて。ブログ名を {base-hostname} パラメータとして使用すると、エラーなしで動作します。変。そんなことがあるものか?コードに何か問題がありますか?

4

2 に答える 2

1

これは、OAuthアクセストークンによってブログへのアクセスが許可されるためです。OAuthは、所有していないブログメソッドにアクセスする許可を与えることはできません。これは、ブログメソッドに投稿できるためです。

于 2011-10-21T00:32:19.477 に答える
0

POST リクエストを行う場合、enctype は「multipart/form-data」でなければなりません。

Zend_Oauth (php) でも同じ問題がありましたが、現在は解決されています。

于 2012-01-16T14:50:32.757 に答える