Tumblr的API“报价”请求中的“错误请求”响应

时间:2013-08-13 19:22:46

标签: php api tumblr

我开发了一个使用Tumblr API的PHP脚本。当我发布“文本”时,一切正常,但在“引用”帖子上,我收到“错误请求”错误。我使用Composerhttps://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);
}

我该如何解决这个问题?

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."
  }
}