如何使用PHP与PHP在Tumblr中的帖子中添加多个标签?

时间:2016-10-03 12:46:50

标签: php tumblr

我使用其API在Tumblr上发帖。我可以成功发布并添加单个标签到任何帖子,但我在添加多个标签时遇到了麻烦。

这是他们在导游上的建议:

{
"response": {
"posts": [
     {
        "blog_name": "blogname",

        "type": "text",
        "tags": [
           "tumblrize",
           "milky dog",
           "mini comic"
        ],
        "title": "A title",
        "body": "Some text for the post"
     },
     ...
  ]
 }
}

我在PHP中执行以下操作:

$data = array('title' => 'My Title', 'body' => 'My Content', 'tags' => 'A Single Tag');
$client->createPost($blog_n, $data);

要使用多个标签,我编写了以下代码:

$data = array('title' => 'My Title', 'body' => 'My Content', 'tags' => array('A', 'Single', 'Tag'));

但这引起了例外。

任何人都可以帮助我了解如何发布多个标签。

这是我得到的例外:

  

PHP致命错误:未捕获Tumblr \ API \ RequestException:[500]:   内部服务器错误

     抛出   /home/freadioc/public_html/socialmedia/tumblr/lib/Tumblr/API/Client.php

Link to the documentation

更新

在下面的答案中提出建议后,我使用了以下代码:

$data = array('title' => 'My Title', 'body' => 'My Content', 'tags' => 'Multiple', 'Tags'));

使用上面的代码只会导致一个标记附加到帖子,即Multiple。我认为这是因为关联数组本身具有逗号分隔值。

1 个答案:

答案 0 :(得分:3)

  

这是他们在导游上的建议:

不,不是。当您读取发布信息时,这是您可以期望从API 取回的JSON数据结构。在这种情况下,tags属性将是数组标记。

你想在制作帖子,这意味着正确的文档部分是https://www.tumblr.com/docs/en/api/v2#posting

正如您在那里看到的,它描述了请求参数tags,如下所示:

  

标签|字符串|此帖子的逗号分隔标签

所以你必须传递字符串,而不是数组

  

这是我得到的例外:

这也不是真的......

不,这不是你得到的例外,这是你得到的致命错误,因为你忽略了来捕捉异常。

您应该了解如何使用try / catch来正确处理异常,以及如何查看它们实际包含的错误信息:http://php.net/manual/en/language.exceptions.php

编辑:

  

在下面的答案中提出建议后,我使用了以下代码:

  $data = array('title' => 'My Title', 'body' => 'My Content',
                'tags' => 'Multiple', 'Tags'));

没有人建议。

您尚未在此处为键tags添加两个值,但只有一个(Multiple) - 然后是一个完全独立的新数组元素,其值为Tags

带逗号分隔标签的字符串只是 - 一个字符串

$helloIAmAString = 'with,comma,separated,tags';