我开发了一个使用Tumblr API的PHP脚本。当我发布“文本”时,一切正常,但在“引用”帖子上,我收到“错误请求”错误。我使用Composer从https://github.com/tumblr/tumblr.php获取“tumblr / tumblr”存储库。
这是我的PHP脚本:
<?php
require 'vendor/autoload.php';
$consumer_key = 'KEY';
$consumer_secret = 'SECRET';
$token = 'TOKEN';
$token_secret = 'SECRET';
$blog = 'BLOG';
$client = new Tumblr\API\Client($consumer_key, $consumer_secret, $token, $token_secret);
#$options = array('type' => 'text', 'title' => 'Title', 'body' => 'Body', 'tags' => 'Test');
$options = array('type' => 'quote', 'text' => 'Text', 'source' => 'Source', 'tags' => 'Test');
try{
$res = $client->createPost($blog, $options);
}
catch(Exception $e){
print "ERROR: ".$e->getMessage()."\n";
exit(1);
}
我该如何解决这个问题?
答案 0 :(得分:3)
在documentation中,引号类型需要 "quote"
字段而不是"text"
字段。
将您的参数更改为此参数,它应该有效:
$options = array('type' => 'quote', 'quote' => 'Text', 'source' => 'Source', 'tags' => 'Test');
当然,看起来Tumblr\API\RequestException
没有返回有用的错误消息。我能够通过黑客攻击Tumblr\API\RequestException
并在构造函数中放置var_dump
来解决这个问题:
public function __construct($response)
{
$error = json_decode($response->body);
var_dump($error->response);
...
有了这个,我至少能够得到一个好的错误信息:
class stdClass#668 (1) {
public $errors =>
array(1) {
[0] =>
string(21) "Post cannot be empty."
}
}