Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用带有PHP的API在Tumblr中向帖子添加多个标记?_Php_Tumblr - Fatal编程技术网

如何使用带有PHP的API在Tumblr中向帖子添加多个标记?

如何使用带有PHP的API在Tumblr中向帖子添加多个标记?,php,tumblr,Php,Tumblr,我正在使用Tumblr的API发布文章。我可以成功发布并向任何帖子添加单个标签,但在添加多个标签时遇到问题 这是他们在指南中提出的建议: { "response": { "posts": [ { "blog_name": "blogname", "type": "text", "tags": [ "tumblrize", "milky dog", "mini comic"

我正在使用Tumblr的API发布文章。我可以成功发布并向任何帖子添加单个标签,但在添加多个标签时遇到问题

这是他们在指南中提出的建议:

{
"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代码已经包含了逗号分隔的数组”-是的,这就是问题所在。它必须是字符串,而不是数组。我正在向问题中添加有关该问题的更多详细信息。:)我在问题的末尾补充了更多细节。