我正在使用Tumblr api v2和php,它的工作正常但是这段代码:
<?php
require 'vendor/autoload.php';
// Authenticate via OAuth
$client = new Tumblr\API\Client(
'my',
'key',
'is',
'good'
);
// Make the request
$post=$client->getUserInfo();
echo(json_encode($post));
?>
就像这样(https://api.tumblr.com/console)
{
"meta": {
"status": 200,
"msg": "OK"
},
"response": { ... }
}
我的响应部分只有没有meta:
{"user":{"name":"my name","likes":0,… }}
我怎样才能获得元数据?我尝试$ post-&gt; meta和$ client-&gt; meta,但这是愚蠢的测试...
答案 0 :(得分:1)
根据this行,您不必担心元数据。 php客户端负责任何响应代码&gt; 400并抛出Tumblr\API\RequestException。所以你真正想做的是:
<?php
require 'vendor/autoload.php';
try {
// Authenticate via OAuth
$client = new Tumblr\API\Client(
'my',
'key',
'is',
'good'
);
$post=$client->getUserInfo();
echo(json_encode($post));
} catch(Tumblr\API\RequestException $e) {
//handle na exception here
}
?>
答案 1 :(得分:0)
键是Client.php
private function getRequest($path, $options, $addApiKey)
{
$response = $this->makeRequest('GET', $path, $options, $addApiKey);
return $this->parseResponse($response);
}
和
private function parseResponse($response)
{
$response->json = json_decode($response->body);
if ($response->status < 400) {
return $response->json->response;
} else {
throw new RequestException($response);
}
}
在你获得它之前,你所做的每一个电话都会得到解析。除非出现错误,否则您将只获得响应,而不是meta,在这种情况下,您将获得异常。
所以,在说“这是愚蠢的”之前阅读代码。