2017-02-22 12 views
0

Во-первых, я смотрел все другое название. Все они устарели. Я имею в виду, они используют старый api.Как получить все комментарии от видео Youtube

Я пишу код, чтобы перечислить все комментарии с их nextPageToken


<?php 
$url  = "SE0wDh_pILk"; // Youtube video ID 
$ytkey = "IzaSyCaRXmJ9XDC4XucAZCzXx7hisCtYEH0mNs"; //"IzaSyBuu-rnbmPAj1DjR6WmyxGmpmQKz8aTXbw" Your api key 
$nextPage = ""; // Next Page Token for get comments of next Page. 
//$i =0; // DO NOT CHANGE 


for ($i = 0; $i < 5; $i++) { 
    $str = file_get_contents("https://www.googleapis.com/youtube/v3/commentThreads?key=" . "$ytkey" . "&textFormat=plainText&part=snippet&videoId=" . "$url" . "&maxResults=100&nextPagetoken=" . "$nextPage"); 

    $json = json_decode($str, true); // decode the JSON into an associative array 
    //echo '<pre>' . print_r($json, true) . '</pre>'; // Print json data as array structer .. 

    echo "$i - " . "Next Page Token : " . $json['nextPageToken']; // Take the next Page Token for get next 100 comment... 
    echo "<hr>"; // Divider 


    $nextPage = $json['nextPageToken']; // Take token for next query 
    // print comments. 

    foreach ($json['items'] as $val) { // Loop for list comments... 
     $author = $val['snippet']['topLevelComment']['snippet']['authorDisplayName']; //Get Comment Author Name. 
     //$author_url = $val['snippet']['topLevelComment']['snippet']['authorChannelUrl']; //Get Comment Author URL. 
     //$author_thumbnail_url = $val['snippet']['topLevelComment']['snippet']['authorProfileImageUrl']; //Get Comment Author Thumbnail URL. 
     $comment = $val['snippet']['topLevelComment']['snippet']['textDisplay']; //Get Comment Content. 

     echo "<span style='color:red';>" . "$author" . "</span>" . " --> " . "$comment"; // Author and comment 
     echo "<hr>"; // Divider 
    } 

} 

echo "Process over. "; 
?> 

я узнать, как разобрать JSON и как показать их на PHP от StackOverflow.

Теперь нет проблем с получением nextPageTokens. Но я не могу получить комментарии.

Когда я запускаю скрипт, он возвращает разные nextPageToken, но комментарии такие же, они исходят с первой страницы.

Я стараюсь добавить достаточно строки комментариев. Извините, я не могу покрасить php-коды.

+0

Любая причина, почему вы делаете это вручную, а не с помощью клиентская библиотека Google PHP? https://github.com/google/google-api-php-client – DaImTo

+0

можете ли вы продлить свой ответ? – user5481342

+1

Прямо сейчас вы все это кодируете. Существует библиотека, созданная Google для PHP, которая сделает все это за вас. Вы делаете это сложнее для себя, тогда это должно быть https://developers.google.com/youtube/v3/code_samples/php#create_and_manage_comments – DaImTo

ответ

2

Вы вызываете commentThreads с параметром &nextPagetoken=.

Правильный параметр для использования - &pageToken=.

+0

Тот же результат :(токены в порядке, но комментарии такие же. – user5481342

+1

Для идентификатора видео SE0wDh_pILk в вашем коде totalResults составляет 90, меньше, чем 100. Честно говоря, я не знаю, почему В этом случае YouTube возвращает nextPageToken, так как есть только 1 страница результатов. – johnh10

+0

в видеоролике, на странице написано: «Есть более 200 комментариев. Но покажите только около 100 в json – user5481342

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