2

我开发了一个使用 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);
}

我怎样才能解决这个问题?

4

1 回答 1

3

文档中,报价类型需要一个"quote"字段而不是一个"text"字段。

将您的参数更改为此,它应该可以工作:

$options = array('type' => 'quote', 'quote' => 'Text', 'source' => 'Source', 'tags' => 'Test');

当然,看起来Tumblr\API\RequestException没有返回有用的错误消息。我能够通过破解Tumblr\API\RequestException并将 avar_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."
  }
}
于 2013-08-13T22:27:50.993 回答