无法使用Tumblr API v2发出POST请求

时间:2011-12-27 22:21:49

标签: php oauth tumblr

我要做的是:通过PHP连接到Tumblr API v2并能够创建新帖子

问题: API响应总是类似于Invalid OAuth credentials. Unable to get info

奇怪的是,当我做GET请求时,我能够连接到API(http://www.tumblr.com/docs/en/api/v2)没有任何问题,但我必须有一些东西当我尝试创建POST时,我的签名一定出错了。

这是我的代码:

$params = array("type" => "quote", "quote"=>"test" ); 
$consumer = new OAuthConsumer($consumer_key, $consumer_secret, null); 
$token = new OAuthConsumer($access_token['oauth_token'], $consumer_secret); 
$req_req = OAuthRequest::from_consumer_and_token($consumer, $token, 
"POST", 'http://api.tumblr.com/v2/blog/MY_URL/post', $params); 
$req_req->sign_request(new OAuthSignatureMethod_HMAC_SHA1(), 
$consumer, $token, null); 
$result = $req_req->to_postdata(); 

$ch = curl_init('http://www.tumblr.com/api/write');
curl_setopt($ch, CURLOPT_URL, 'http://www.tumblr.com/api/write'); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $result); 

var_dump $result回应以下

oauth_consumer_key=xxxxxxxx&oauth_nonce=xxxxxxx&oauth_signature=xxxxxx
&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1325033502&oauth_token=xxxxxx
&oauth_version=1.0"e=test&type=quote

我不确定curl_init是否必须致电http://www.tumblr.com/api/write,但我也尝试api.tumblr.com/v2/blog/{base-hostname}/post没有运气

我还检查了所有变量以查看令牌是否正常并且它们似乎工作正常。

任何正确方向的提示都会受到赞赏,因为我已经访问了Google的第30页,我只看到与我一样的问题的人。

1 个答案:

答案 0 :(得分:0)

我在this library取得了成功,这是一年前写的。

我在卷曲之前检查了结果的转储,它看起来或多或少与你的相同,所以我不确定它的区别是什么。