如何使用带有PHP的API在Tumblr中向帖子添加多个标记?
我正在使用Tumblr的API发布文章。我可以成功发布并向任何帖子添加单个标签,但在添加多个标签时遇到问题 这是他们在指南中提出的建议:如何使用带有PHP的API在Tumblr中向帖子添加多个标记?,php,tumblr,Php,Tumblr,我正在使用Tumblr的API发布文章。我可以成功发布并向任何帖子添加单个标签,但在添加多个标签时遇到问题 这是他们在指南中提出的建议: { "response": { "posts": [ { "blog_name": "blogname", "type": "text", "tags": [ "tumblrize", "milky dog", "mini comic"
{
"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'));
$data = array('title' => 'My Title', 'body' => 'My Content', 'tags' => 'Multiple', 'Tags'));
$data = array('title' => 'My Title', 'body' => 'My Content',
'tags' => 'Multiple', 'Tags'));
但这引发了一个例外
谁能帮我理解如何发布多个标签
这是我得到的例外:
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' => array('A', 'Single', 'Tag'));
$data = array('title' => 'My Title', 'body' => 'My Content', 'tags' => 'Multiple', 'Tags'));
$data = array('title' => 'My Title', 'body' => 'My Content',
'tags' => 'Multiple', 'Tags'));
使用上述代码只会将一个标签附加到帖子上,即多个
。我认为这是因为关联数组本身有逗号分隔的值
这是他们在指南中提出的建议:
{
"response": {
"posts": [
{
"blog_name": "blogname",
"type": "text",
"tags": [
"tumblrize",
"milky dog",
"mini comic"
],
"title": "A title",
"body": "Some text for the post"
},
...
]
}
}
不,不是。这是您在读取post信息时可以从API返回的JSON数据结构。在这种情况下,tags
属性将是一个标签数组
然而,你想在这里发表一篇文章,这意味着你需要正确的文档部分
如您所见,它对请求参数tags
的描述如下:
标签|字符串|此帖子的逗号分隔标签
所以必须传递字符串,而不是数组
这是我得到的例外: 那也不是真的 不,这不是你得到的异常,这是你得到的致命错误,因为你忽略了捕捉异常 您应该阅读如何使用try/catch正确处理异常,以及如何查看异常实际包含的错误信息:
编辑: 根据下面答案中的建议,我使用了以下代码:
$data = array('title' => 'My Title', 'body' => 'My Content', 'tags' => array('A', 'Single', 'Tag'));
$data = array('title' => 'My Title', 'body' => 'My Content', 'tags' => 'Multiple', 'Tags'));
$data = array('title' => 'My Title', 'body' => 'My Content',
'tags' => 'Multiple', 'Tags'));
没有人这样建议
您没有在此处为键标记添加两个值,但只添加了一个(多个),然后是一个具有值标记的完全独立的新数组元素
带有逗号分隔标记的字符串就是-字符串:
$helloIAmAString = 'with,comma,separated,tags';
你需要养成帮助你解决问题的习惯。您将获得积分,其他人将被鼓励帮助您。“这引发了一个例外”,那么这个例外到底会是什么?@JayBlanchard我总是在他们解决我的问题时接受答案。:)@PatrickQ我已将例外添加到问题详细信息中。:)感谢CBroe,但是PHP代码已经包含逗号分隔的数组
。此处无法添加逗号分隔的标记。:)我试过了,但是帖子只得到了列表中的第一个标记。“但是PHP代码已经包含了逗号分隔的数组”-是的,这就是问题所在。它必须是字符串,而不是数组。我正在向问题中添加有关该问题的更多详细信息。:)我在问题的末尾补充了更多细节。