1

所以我对 YouTube API 供稿有疑问。

在我们的实时网站上,它不会打印提要的数据,但是当我访问我们的开发人员服务器时,一切都会正确打印。

这里以一个基本的测试页面为例:http ://www.fleetistics.com/videos/test.php

我什么也没看到。

这是我应该看到的片段:

SimpleXMLElement Object
(
    [id] => tag:youtube.com,2008:video:wzE9T5iy00Y
    [published] => 2013-03-25T19:13:32.000Z
    [updated] => 2013-06-05T13:29:37.000Z
    [category] => Array
        (
            [0] => SimpleXMLElement Object
                (
                    [@attributes] => Array
                        (
                            [scheme] => http://schemas.google.com/g/2005#kind
                            [term] => http://gdata.youtube.com/schemas/2007#video
                        )

                )

            [1] => SimpleXMLElement Object
                (
                    [@attributes] => Array
                        (
                            [scheme] => http://gdata.youtube.com/schemas/2007/categories.cat
                            [term] => Autos
                            [label] => Autos & Vehicles
                        )

                )

        )

    [title] => GPS Tracker Used by Action Lock and Safe
    [content] => SimpleXMLElement Object
        (
            [@attributes] => Array
                (
                    [type] => application/x-shockwave-flash
                    [src] => https://www.youtube.com/v/wzE9T5iy00Y?version=3&f=videos&app=youtube_gdata
                )

        )

这是我在 test.php 页面上使用的代码:

<?php
    $entryURL = 'https://gdata.youtube.com/feeds/api/videos/wzE9T5iy00Y?v=2';
    $feed = simplexml_load_file($entryURL);
?>

<pre><?php print_r($feed); ?></pre>

这个基本示例仅使用“视频”提要,但我对所有提要都有相同的问题。

现在这些提要在周五正常工作,所以从那时到现在发生了一些事情。

我已经排除了这可能是一个编程错误,因为在我提供的示例中,我取出了所有东西,只留下了最低限度的东西。加上相同的代码在开发服务器上运行良好。

我认为这不是 YouTube API,因为我没有看到任何重大公告,而且我看到的其他提要运行良好。

所以这让我相信这是我的网站或我的帐户的问题。我觉得这与我的帐户有关,因为我网站上使用其他应用程序的其他提要工作正常。

我该如何解决这个问题,或者进一步解决这个问题,以便我可以修复它?

4

1 回答 1

1

这听起来(看起来)很可疑,就像allow_url_fopen您的生产服务器上的 php 标志已被关闭。如果您有权访问 php.ini 文件,则可以检查该标志(它需要打开以允许 simplexml_load_file 加载远程数据)。如果它是您没有该访问权限的托管环境,您可以通过编写如下例程进行检查:

if( ini_get('allow_url_fopen') ) {
   echo "it's on!";
} 
else {
   echo "it's off!";
}

如果这是问题所在,并且您无权重新打开它,则可以改用 curl:

function curl_get_contents ($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $output = curl_exec($ch);
    curl_close($ch);
    return $output;
}

$entryURL = 'https://gdata.youtube.com/feeds/api/videos/wzE9T5iy00Y?v=2';
$feed = simplexml_load_file(curl_get_contents($entryURL));

如果这不是问题,请检查您的日志以查看 simplexml_load_file 是否引发任何错误。

于 2013-06-10T21:06:22.530 回答