PHP如何从VIMEO API中提取JSON数据并将其打印在XML文件上?

问题描述

我正在调用以下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']);
  }


   ?>

enter image description here

解决方法

您只需要将三样东西保存在一个单独的数组中,然后以所需的格式打印即可。

更新

您的所有视频都有一系列数据。那么您需要使用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'];