我使用其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
更新
在下面的答案中提出建议后,我使用了以下代码:
$data = array('title' => 'My Title', 'body' => 'My Content', 'tags' => 'Multiple', 'Tags'));
使用上面的代码只会导致一个标记附加到帖子,即Multiple
。我认为这是因为关联数组本身具有逗号分隔值。
答案 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';