【问题标题】:Get video ratings with YouTube API V3 PHP使用 YouTube API V3 PHP 获取视频评分
【发布时间】:2016-02-23 15:15:10
【问题描述】:

很遗憾,我需要询问已经知道如何做到这一点的人,因为我和一个朋友在 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) 也不起作用。我们也不确定错误想告诉我们什么,这里是一个例子:

发生客户端错误:(列表)缺少必需的参数:'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', 数组, '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.phphttp://moone.in/yttest.phphttp://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"    }   }  ] }

谢谢!

【问题讨论】:

    标签: php video youtube youtube-api rating


    【解决方案1】:

    http://kati.renoi.de/test.php?q=lightningsoul&location=&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()));
      }
    

    感谢所有相信我的人:我的妈妈、我的兄弟、我的女朋友 kati 和你们所有人。 ;)

    【讨论】:

      猜你喜欢
      • 2015-06-16
      • 1970-01-01
      • 2014-01-26
      • 2017-05-09
      • 2015-08-29
      • 2018-06-28
      • 2014-06-05
      • 2016-01-17
      • 2015-12-01
      相关资源
      最近更新 更多