问题描述
我正在调用以下Vimeo API,以返回特定视频下的所有视频。我试图实现的是仅提取所需的特定JSON数据。 “ uri”和“ name”是我唯一需要的数据。以及如何将其打印到XML文件中? https://developer.vimeo.com/api/reference/folders#get_project_videos
顺便说一下,这是我的尝试:
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<Meta charset="utf-8">
<title></title>
</head>
<body>
<?PHP
header('Content-Type: text/html; charset=utf-8');
require ("vendor/autoload.PHP");
use Vimeo\Vimeo;
$client = new Vimeo("{client_id}","{client_secret}","{access_token}");
$user_id = '121265018';
$project_id = '2370434';
$response = $client-
>request("/users/$user_id/projects/$project_id/videos");
var_dump($response);
if ($response['status'] === 200) {
$videos = [];
foreach ($response['data'] as $data) {
$result = [
//'uri' => $data['uri'],'name' => $data['name'],//'pictures' => $data['pictures'],];
$videos[] = $result;
}
echo json_encode($videos,JSON_UnesCAPED_UNICODE | JSON_UnesCAPED_SLASHES);
} else {
echo json_encode($response['body']['error']);
}
?>
解决方法
您只需要将三样东西保存在一个单独的数组中,然后以所需的格式打印即可。
更新
您的所有视频都有一系列数据。那么您需要使用foreach来获取所有视频的uri,名称和图片,并将其保存在另一个数组中。
<body>
<?PHP
header('Content-Type: text/html; charset=utf-8');
require("vendor/autoload.php");
use Vimeo\Vimeo;
$client = new Vimeo("{client_id}","{client_secret}","{access_token}");
$user_id = '121265018';
$project_id = '2370434';
$response = $client->request("/users/$user_id/projects/$project_id/videos");
if ($response['status'] === 200) {
$videos = [];
foreach ($response['body']['data'] as $data) {
$result = [
'uri' => $data['uri'],'name' => $data['name'],'pictures' => $data['pictures'],];
$videos[] = $result;
}
echo json_encode($videos,JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
} else {
echo json_encode($response['body']['error']);
}
?>
</body>
,
我认为您应该替换行
$jsondata = file_get_contents($response);
使用
$jsondata = $response['body'];