【问题标题】:file_get_contents('YOUTUBE API') returns cached/non-updated/old informationfile_get_contents('YOUTUBE API') 返回缓存/未更新/旧信息
【发布时间】:2012-12-14 21:24:22
【问题描述】:

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();
}

【问题讨论】:

    标签: youtube-api


    【解决方案1】:

    尝试在 url 调用的末尾附加一个随机数。 https://gdata.youtube.com/feeds/api/users/EXAMPLE/uploads?v=2&alt=jsonc&r=RAND 其中RAND 将是每次调用 url 时随机生成的任意数字。不确定这是否适合您,但可能值得一试。

    【讨论】:

    • Chase,我尝试在 url 调用的末尾添加一个 rand(),它没有解决问题。感谢您的回复。
    【解决方案2】:

    我遇到了类似的问题。我正在尝试通过 $.ajax() 调用检索特定视频的当前状态,并且响应数据似乎保持缓存状态。如果我从浏览器尝试 url,数据就会更新。

    $.ajax({
        url: 'https://gdata.youtube.com/feeds/api/videos/YouTubeID?v=2&alt=json'
        type: "post",
        dataType: 'json',
        cache: false,
        success: function(response, textStatus, jqXHR){ 
            var ytState = response.entry.app$control.yt$state.name;
        },
        error: function(jqXHR, textStatus, errorThrown){
            console.log( "The following error occured: "+ textStatus + errorThrown );
        },
        complete: function(){   
        }
    });
    

    我试过json,jsonp,cached=false,附加时间戳,将我的开发者密钥附加到url,没有成功。

    **编辑

    通过在我的 ajax 请求中使用 POST 与 GET 似乎消除了我类似的缓存问题。

    编辑编辑

    没关系,我很烂。使用 POST 会产生 400 错误。

    【讨论】:

    • 太奇怪了。我使用 PHP 和 file_get_contents() 按照您的方法尝试了一些方法,我认为我已经工作了,但是缓存问题仍然间歇性地弹出。
    猜你喜欢
    • 1970-01-01
    • 2013-04-23
    • 2016-05-03
    • 1970-01-01
    • 1970-01-01
    • 2015-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多