2

我正在开发一个 .net 应用程序来访问我的 tumblr 帐户。

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

这是我为获取访问令牌而调用的网址……这种格式有问题吗?(出于隐私目的,我为我的消费者密钥、oauth 令牌和 oauth 验证器添加了一些 z)。这与我用于 twitter 的格式相同,效果很好。

有任何想法吗?

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

4

2 回答 2

4

原来,在设置 URL 以请求授权的步骤中获得的 oauth 令牌秘密也需要保存,然后在最后一步中使用,以获取访问令牌和秘密。

于 2012-09-07T02:00:44.173 回答
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_secretfor 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.

于 2021-06-30T14:41:00.287 回答