OAuthでTumblrAPIを叩くpythonコードなんだけど

pythonでpython-oauth2を使ってTumblrAPIを叩くコードはほとんで定型で広く出回っており、少し探すと似た様なものがいくつも出てくる。

しかし現在、これらをコピペしてもアクセストークンの取得で失敗する。

oauth_signature [YedKhiP46qXhKH8CBlQDgVbpo0Y=] does not match expected
value [vFXLMUpJGNTn9pTZqh6uaWbLQTw=]

原因は単純で、公式ドキュメントによるとRequest-token URLへはPOSTしろといっているにも関らず、コードではGETしている。

すなわちここで得られたoauth_token, oauth_token_secretが不正であり、アクセストークン発行時にこれらを検査して失敗する。

何でそんなOAuthの後半戦までいってから失敗するのかは知らない。そういう実装なんじゃないの?

Request-token URL:


POST http://www.tumblr.com/oauth/request_token

Authorize URL:

http://www.tumblr.com/oauth/authorize

Access-token URL:


POST http://www.tumblr.com/oauth/access_token

Tumblr

結局、以下の様にするのが正しい。

def requestToken():
    url = 'http://www.tumblr.com/oauth/request_token'
    client = oauth2.Client(consumer)
    resp, content = client.request(url, 'POST')
    request_token = dict(urlparse.parse_qsl(content))
    return request_token['oauth_token'], request_token['oauth_token_secret']

One Trackback

  1. By factor auto notes on 2015年11月26日 at 4:39 PM

    factor auto notes

    OAuthでTumblrAPIを叩くpythonコードなんだけど – 放置演算子

Post a Comment

Your email is never shared.

引く

PageTop