Tumblr C#访问令牌oauth_signature与期望值401错误不匹配

时间:2012-08-22 14:49:32

标签: .net oauth tumblr

我正在使用.net应用程序访问我的tumblr帐户。

在ouath握手中,我通过授权步骤进行。但是当我尝试获取访问权限时(在我授权tumblr上的帐户授予我的应用权限后),我收到401错误的oauth_signature与预期值不匹配

这是我的网址,我打电话来获取访问令牌......这种格式有问题吗? (为了隐私目的,我为我的消费者密钥,oauth令牌和oauth验证器添加了一些z)。这与我用于推特的格式相同。

任何想法?

http://www.tumblr.com/oauth/access_token?oauth_callback=oob&oauth_consumer_key=UDwa2ZMvBGU53XXXXXXXXXXXXXXXXXXXXXX&oauth_nonce=9299949&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1345645132&oauth_token=kg6M3FeYUoHVEMRQZZZZZZZZZZZZZZZZZZZZZZZZ&oauth_verifier=BgXcqcmyiSuJWHggMzCQcZZZZZZZZZZZZZZZZZZZZ&oauth_version=1.0&oauth_signature=iPbc5kE5LbudXJm1MVc0VNeIQxA%3D

2 个答案:

答案 0 :(得分:4)

结果在设置URL的过程中获得的oauth令牌秘密也需要保存,然后在获取访问令牌和秘密的最后一步中使用。

答案 1 :(得分:1)

您只需要在执行调用后提取 oauth_token_secret

https://www.tumblr.com/oauth/request_token

第二次调用的参数:

$params = array(
            "oauth_consumer_key" => $this->key,
            "oauth_nonce" => time(),
            "oauth_signature_method" => "HMAC-SHA1",
            "oauth_timestamp" => time(),
            "oauth_token" => $tumblr_oauth_token,
            "oauth_verifier" => $oauth_verifier,
            "oauth_version" => "1.0",
        );

然后将 token_secret 用于 oauth_signature

$secret = encode_rfc3986($token)."&".encode_rfc3986($token_secret);
$params['oauth_signature']=encode_rfc3986(base64_encode(hash_hmac('sha1',$baseString, $secret, TRUE)));

一切都完成了。问题发生的原因是 oauth_signature