Получите рейтинги видео с помощью YouTube API V3 Stack Overflow

К сожалению, мне нужно спросить кого-то, кто узнал, как это сделать, потому что я и друг не смогли добиться этого за 8 часов попыток.

Что мы хотим сделать:
Просто получите оценки любого данного видео YouTube (через его идентификатор) и опубликуйте их в эхо. Это было до того, как 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, но только с видео-> list или videos-> listVideos (мы не уверены, что является правильным документация не совсем точная по этому вопросу).

Что мы попробовали:
В основном мы пробовали десятки комбинаций этой строки (та, которая выбрасывает ошибки):

$videosResponse = $youtube->videos->list('part,id',array(
'part' => 'statistics'), array('id' => 'hoe9xW7vnpA'));

Мы не уверены, как правильно справиться с этим, поскольку документация не говорит нам, и пример кода, который подходит лучше всего (PHP # 1), не сработал. Мы также не уверены, что ошибки хотят сказать нам, вот пример:

Произошла ошибка клиента: (список) отсутствует обязательный параметр: ‘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

Если бы кто-нибудь мог помочь нам с правильным синтаксисом video-> videoList или -> list, это было бы здорово! Результат должен выглядеть так:

{  "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

Решение

http://kati.renoi.de/test.php?q=lightningsoul&место =&locationRadius =&maxResults = 25

ЭТО НАКОНЕЦ РАБОТАЕТ!

Вот РАБОЧИЙ код:

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

Спасибо всем, кто верит в меня: моей маме, моему брату, моей подруге Кати и всем вам, ребята. 😉

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]