我最近一直在嘗試使用YouTube分析API獲取一些數據。我在ONE域名上遇到問題,但它在另一個域上沒有任何錯誤。無法打開流:HTTP請求失敗! HTTP/1.0 400錯誤請求 - 試圖獲取YouTube API數據
它使用EXACT相同的代碼,除了從index.php更改爲api.php的形式action =「」 - 我只是不明白爲什麼它在一個域上工作,而不在另一個域上?!
確切的錯誤是:
警告:的file_get_contents(http://gdata.youtube.com/feeds/api/users/):未能打開流:HTTP請求失敗! HTTP/1.0 400錯誤請求/customers/2/c/9/catalyst.yt/httpd.www/api.php on line 22警告:file_get_contents(http://gdata.youtube.com/feeds/api/users/?alt=json):無法打開流:HTTP請求失敗! HTTP/1.0 400 /customers/2/c/9/catalyst.yt/httpd.www/api.php錯誤的請求上線24
下面的代碼
<html>
<head>
<title>Get YouTube Channel Data</title>
</head>
<body>
<form action="api.php" method="GET">
<input type="text" name="username" />
<input type="submit" value="Submit!" />
</form>
</body>
</html>
<?php
$channelUser = $_GET['username'];
$data = file_get_contents('http://gdata.youtube.com/feeds/api/users/' . $channelUser);
$data = file_get_contents('http://gdata.youtube.com/feeds/api/users/' . $channelUser . '?alt=json');
$data = json_decode($data, true);
$stats_data = $data['entry']['yt$statistics'];
$img_data = $data['entry']['media$thumbnail'];
echo $channelUser . ' Has <strong>'.$stats_data['subscriberCount'].'</strong> Subscribers.<br />';
echo $channelUser . ' Has <strong>'.$stats_data['totalUploadViews'].'</strong> Total Views.<br />';
echo 'Logo: <br /><img src="' .$img_data["url"].'" /><br />';
?>
其實allow_url_fopen在Web服務器上啓用。我會給這個鏡頭,謝謝! - 編輯。試圖抓取數據時這不起作用,不知道爲什麼(啓用了捲曲)。 – 2014-10-19 17:46:37
你能解釋一下哪些工作不正常或者提供了一些輸出結果嗎?另外,您正在使用已棄用的v2 api。您應該創建一個api密鑰並使用v3 api。我正在做一個例子。 – paolo 2014-10-20 18:12:38