不幸的是,我需要问一个已经发现如何做到这一点的人,因为我和一个朋友在8个小时的尝试中无法实现这一点。
我们想做什么: 只需获取任何特定YouTube视频的评分(通过其ID)并将其发布回信号。我们在YouTube切换到API V3之前已经有了这个,现在无法在新API中使用它。
它在V2中的运作方式: 我们创建了一个基本上使用PHP API来设置这样的数组的函数:
$rating[] = $videoEntry->getVideoRatingInfo();
它应该如何运作: https://developers.google.com/youtube/v3/docs/videos/list#try-it在这里你会找到一个文档和几个例子(即使我们修复了错误
,PHP#1也无法正常工作 $youtube = new Google_Youtube_Service($client);
真的是
$youtube = new Google_YoutubeService($client);
有什么用?
try {
$searchResponse = $youtube->search->listSearch('id,snippet', array(
'q' => $vid,
'maxResults' => 1,
));
foreach ($searchResponse['items'] as $searchResult) {
switch ($searchResult['id']['kind']) {
case 'youtube#video':
$sr = $searchResult['id']['videoId'];
$stit = $searchResult['snippet']['title'];
$svid = $searchResult['id']['videoId'];
这最终将为我们提供YouTube视频的标题,但不幸的是我们无法通过search-> listSearch获得评分,但仅限于视频 - >列表或视频 - > listVideos(我们不确定是什么是正确的,因为文档在这方面并不准确。
我们尝试了什么: 我们基本上尝试了这一行的几十种组合(抛出错误的组合):
$videosResponse = $youtube->videos->list('part,id',array(
'part' => 'statistics'), array('id' => 'hoe9xW7vnpA'));
我们不确定如何正确处理这个问题,因为文档没有告诉我们,并且最适合的代码示例(PHP#1)不起作用。我们也不确定错误想告诉我们什么,这是一个例子:
发生客户端错误:(list)缺少必需的参数:' id' 还有一个在这里: 致命错误:未捕获的异常' Google_Exception'与消息 '(列表)缺少必需的参数:' id''在 /kunden/406064_81373/webseiten/moone.in/test/google-api-php-client/src/service/Google_ServiceResource.php:117 堆栈跟踪:#0 /kunden/406064_81373/webseiten/moone.in/test/google-api-php-client/src/contrib/Google_YouTubeService.php(810): Google_ServiceResource-> __ call(' list',Array)#1 /kunden/406064_81373/webseiten/moone.in/yt.php(22): Google_VideosServiceResource-> listVideos(' hoe9xW7vnpA',Array, ' id,part')#2 {main}引入 /kunden/406064_81373/webseiten/moone.in/test/google-api-php-client/src/service/Google_ServiceResource.php 在第117行
我们的测试文件可以在这里找到: http://moone.in/yt.php http://moone.in/yttest.php http://moone.in/yttest2.php http://kati.renoi.de/test.php
如果有人可以帮助我们使用正确的语法 - 视频> videoList或 - >列表那将是非常棒的! 结果应如下所示:
{ "kind": "youtube#videoListResponse", "etag": "\"DsOZ7qVJA4mxdTxZeNzis6uE6ck/6A0cNjY9_rw5Yp9m7QtlTdTYMNw\"", "pageInfo": { "totalResults": 1, "resultsPerPage": 1 }, "items": [ { "kind": "youtube#video", "etag": "\"DsOZ7qVJA4mxdTxZeNzis6uE6ck/Y9W8NZu8IBcMlsQNsTsNLi5dk0k\"", "id": "hoe9xW7vnpA", "statistics": {
"viewCount": "7863",
"likeCount": "1105",
"dislikeCount": "10",
"favoriteCount": "0",
"commentCount": "785" } } ] }
谢谢!
答案 0 :(得分:1)
http://kati.renoi.de/test.php?q=lightningsoul&location=&locationRadius=&maxResults=25
IT最终工作!
以下是工作代码:
$DEVELOPER_KEY = 'CHANGE_TO_YOUR_OWN_GOOGLE_DEV_KEY';
$client = new Google_Client();
$client->setDeveloperKey($DEVELOPER_KEY);
// Define an object that will be used to make all API requests.
$youtube = new Google_YoutubeService($client);
try {
# Call the videos.list method to retrieve ratings for video with id hoe9xW7vnpA.
$videosResponse = $youtube->videos->listVideos('hoe9xW7vnpA','statistics',array(
'id' => 'hoe9xW7vnpA',
'part' => 'statistics',
));
$videos = '';
// Display the likes and dislikes of matching video.
foreach ($videosResponse['items'] as $videoResult) {
echo "likeCounts: ";
echo $videoResult['statistics']['likeCount'];
echo "<br />dislikeCounts: ";
echo $videoResult['statistics']['dislikeCount'];
}
} catch (Google_Service_Exception $e) {
$htmlBody .= sprintf('<p>A service error occurred: <code>%s</code></p>',
htmlspecialchars($e->getMessage()));
} catch (Google_Exception $e) {
$htmlBody .= sprintf('<p>An client error occurred: <code>%s</code></p>',
htmlspecialchars($e->getMessage()));
}
感谢大家相信我:我的妈妈,我的兄弟,我的女朋友卡蒂和你们所有人。 ;)