2016-12-07 7 views
1

유튜브 데이터 V3 API는 요청을 얻기 종류의

{ 
"items": [ 
    { 
    "snippet": { 
    "publishedAt": "2016-12-07T16:04:40.472Z", 
    "displayMessage": "a" 
    } 
    } 
] 
} 

문제는 내가 단지 원하는처럼 이봐, 내가 V3 데이터 유튜브 API를 사용하기 위해 노력하고있어 모두 이미 요청 자체와 응답이 보이는이 마지막 코멘트와 200 전체 (낮은 설정하지 못할 수 있음) 내 첫 번째 아이디어는 전체 응답을 저장하고 다음 질문과 비교하여 새로운 내용을 알고 있지만 실제로 작동하지 않습니다.

+0

https://developers.google.com/youtube/v3/docs/comments/list - 이는 API 검색어에 포함 할 수있는 'maxResults'매개 변수가 있음을 나타냅니다. 값 1 - 100.을 사용하고 있습니까? 이 특정 쿼리? 아마도 몇 가지 코드를 게시하십시오. – Asnivor

+0

요청 최저가 양은 보인다 https://www.googleapis.com/youtube/v3/liveChat/messages?liveChatId=EiEKGFVDcEQ1eWFiTnlSSzNKNDFTNDRMODE1ZxIFL2xpdmU&part=snippet&maxResults=200&fields=eventId%2Citems(snippet(displayMessage%2CpublishedAt :(200)) & key = –

+0

검색어에 'id'필터를 사용하고 있습니까? 문서에서 MaxResults가 지원되지 않는다고 말합니다. – Asnivor

답변

0

덧글, 나는 당신을 라이브 스트리밍 API에 대해 이야기하고 있습니다.

돌아 오는 메시지는 메시지가 아니라 주석입니다. 예, doc에 "허용되는 값은 200에서 2000까지이며 기본값은 500입니다." 따라서 전체 200 개를 가져온 다음 타임 스탬프를 정렬하여 최신 메시지를 가져올 수 있습니다.

어떻게 수행하나요?

C#에서이 작업을 수행하면 json 문자열이 생기면 Json.NET과 같은 라이브러리를 사용해야합니다. 이에 NuGet 패키지 참조를 추가 한 후에는

using Newtonsoft.Json.Linq; 

가 필요합니다 및 JSON에 LINQ를 사용하는 JObject.Parse를 사용,이 documentation에 설명 된대로 JSON 문자열이, 그리고

var json = @"{ 
    ""items"": [ 
    { 
     ""snippet"": { 
     ""publishedAt"": ""2016-12-07T16:04:40.472Z"", 
     ""displayMessage"": ""a"" 
     } 
    } 
    , 
    { 
     ""snippet"": { 
     ""publishedAt"": ""2016-12-12T16:04:40.472Z"", 
     ""displayMessage"": ""b"" 
     } 
    } 
    ] 
}"; 

라고 .

var parsedJson = JObject.Parse(json); 
JArray items = parsedJson.SelectToken("items") as JArray; 
var sortedItems = items.OrderByDescending(item => item["snippet"]["publishedAt"]); 
// sortedItems.First() will give you the item with the newest timestamp 

이 모든 것을 https://dotnetfiddle.net/ubQAZV에 넣었습니까?

강하게 입력 된 코드로 비 직렬화하려는 경우 JsonConvert를 사용할 수 있습니다. 상세 정보 here.

+0

@ Matthias-Klaas,이 도움을 줬어? – sudheeshix