2016-02-23 2 views
0

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

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

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

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

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

An client error occurred: (list) missing required param: 'id' And another one here: Fatal error: Uncaught exception 'Google_Exception' with message '(list) missing required param: 'id'' in /kunden/406064_81373/webseiten/moone.in/test/google-api-php-client/src/service/Google_ServiceResource.php:117 Stack trace: #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} thrown in /kunden/406064_81373/webseiten/moone.in/test/google-api-php-client/src/service/Google_ServiceResource.php on line 117

Наши testfiles можно найти здесь: http://moone.in/yt.phphttp://moone.in/yttest.phphttp://moone.in/yttest2.php http://kati.renoi.de/test.php

Если кто-то может помочь нам с правильный синтаксис в список video-> 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" } } ] } 

Спасибо!

ответ

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

Спасибо всем, верящие в меня: моя мама, мой брат, моя подруга кати и все из вас, ребята. ;)

 Смежные вопросы

  • Нет связанных вопросов^_^