https://gdata.youtube.com/feeds/api/users/EXAMPLE/uploads?v=2&alt=jsonc
当直接从浏览器访问这个 url 时,它将 100% 的时间返回正确的数据。如果添加了一个视频,它就在那里,如果一个视频已被删除,它就消失了。
通过 file_get_contents('https://gdata.youtube.com/feeds/api/users/EXAMPLE/uploads?v=2&alt=jsonc'); 获取此数据时
数据似乎已缓存或未更新/当前数据...
如果您继续刷新页面,它将显示/隐藏新视频,以及显示/隐藏已删除的视频大约 5-10 分钟,然后它会准确。
当我使用 $.getJSON() 或 $.ajax() 获取数据时,也会发生同样的事情......
数据不应该和浏览器中访问url的时候一样吗?
我只是想获取用户“EXAMPLE”上传的最新视频。
public function ajaxUpdateVideoFeed()
{
header("Content-type: application/json");
$json = file_get_contents('https://gdata.youtube.com/feeds/api/users/EXAMPLE/uploads?v=2&alt=jsonc');
$data = json_decode($json, TRUE);
$videoId = $data['data']['items'][0]['id'];
echo json_encode($videoId);die();
}