即使服务器的IP地址已列入白名单,YouTube API调用也会失败

时间:2015-04-15 11:21:58

标签: php youtube-api google-php-sdk

我有一个简单的PHP组件,可以从YouTube上的公共播放列表中获取视频。我正在使用Google的官方PHP SDK并使用服务器密钥进行身份验证(因为我只需要访问公共数据,而不是用户上下文中的数据)。

在整个开发和分阶段,这个组件运行良好。但是,我已将应用程序移动到客户端的生产服务器(GoDaddy托管帐户),组件突然停止工作,而是抛出以下错误:

  

REST.php第83行中的Google_Service_Exception:   调用GET https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=50&playlistId=PLAYLIST_ID&userIp=SERVER_IP&key=DEVELOPER_KEY时出错:(403)您的API密钥上配置了每IP或每个Referer限制,并且请求与这些限制不匹配。如果允许来自此IP或引用者的请求,请使用Google Developers Console更新您的API密钥配置。

我不明白。服务器的IP地址在Google API控制台中列入白名单。我知道这是正确的IP地址,因为我已经从服务器向另一个PHP脚本发送了HTTP POST请求并捕获了REMOTE_ADDR服务器变量。

我也尝试在请求中指定IP地址。完整代码:

$client = new Google_Client;
$client->setApplicationName($appName);
$client->setDeveloperKey($developerKey);

$service = new Google_Service_YouTube($client);

$service->playlistItems->listPlaylistItems('snippet', array(
    'maxResults' => 50,
    'playlistId' => $collectionId,
    'userIp' => $serverIp,
));

那是怎么回事?为什么Google决定不与生产服务器合作?

0 个答案:

没有答案