2016-02-11 3 views
1

Я хочу получать новейшие сообщения чата из API Live Streaming. Но я всегда стану первым. Могу ли я получить его в обратном порядке? Есть ли свойство, которое я могу установить для этого?Получить чат-сообщения в обратном хронологическом порядке

Вот несколько примеров кода:

if ($_GET['action'] == "listchatmessages") 
    { 
     $htmlBody .= '<h1>Chatnachrichten</h1>'; 
     $broadcastsChatResponse = $youtube->liveChatMessages ->listLiveChatMessages (
     $broadcastItem['snippet']['liveChatId'], 'snippet'); 
     $myfile = fopen("chatmessages.txt", "w") or die("Unable to open file!"); 
     $count = 0; 
     if ($_GET['search'] != "") 
     { 
     if (!empty($broadcastsChatResponse['items'])) 
      { 
       foreach ($broadcastsChatResponse['items'] as $broadcastChatItem) 
       { 
        if ($count < 200) 
        { 

         $broadcastsDetailsChatResponse = $youtube->liveChatMessages ->listLiveChatMessages (
         $broadcastChatItem['snippet']['liveChatId'], 'authorDetails'); 
         $broadcastDetailsChatItem = $broadcastsDetailsChatResponse['items'][0]; 

          if ((preg_match('/'.$_GET['search'].'/',$broadcastChatItem['snippet']['textMessageDetails']['messageText'])) OR $_GET['search'] == 'all') 
          { 
           $message = $broadcastChatItem['snippet']['authorChannelId'].'_'.$broadcastDetailsChatItem['authorDetails']['displayName'].'_'.$broadcastChatItem['snippet']['textMessageDetails']['messageText']."\n"; 
           $htmlBody .= '<li> Author: <a href="'.$broadcastChatItem['snippet']['authorChannelId'].'">'.$broadcastDetailsChatItem['authorDetails']['displayName'].'</a> schrieb: '.$broadcastChatItem['snippet']['textMessageDetails']['messageText'].'</li>'; 
           $count++; 
           fwrite($myfile, $message); 
          } 
        } 
        else 
        { 
         break; 
        } 
       } 


       $htmlBody .= '<h4> Alle Chatnachrichten empfangen (Anzahl der teilnehmenden Nahcrichten: '.$count.')</h4>'; 
      } 
      else 
      { 
       $htmlBody .= '<p>Der Stream scheint nicht online zu sein</p>'; 
      } 
     } 
     else 
     { 
      $htmlBody .= 'Kein Suchwort. Nutze all um alle Nachrichten zu nehmen'; 
     } 

     fclose($myfile); 
    } 
+0

Hi ModdyLP, Добро пожаловать в переполнение стека! На данный момент ваш вопрос будет трудно ответить, поскольку вы не предоставляете какой-либо пример кода, с которым работаете, - см. Http://stackoverflow.com/help/how-to-ask и обновите свой вопрос как можно полнее ! –

ответ

0

Там, кажется, не быть параметр, который можно передать в ваш запрос на liveChatMessages/list конечную точку, чтобы вернуть новые сообщения в первую очередь.

Вам нужно будет загрузить все сообщения и отсортировать их по дате ISO 8601 в соответствии с snippet.publishedAt каждого сообщения чата.

Я бы также рекомендовал вам подать билет на повышение в Google here, если вы хотите, чтобы эта функция реализована в API.

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