我正在从一个java项目中运行一个按关键字搜索,与示例中的完全一样
https://developers.google.com/youtube/v3/code_samples/java#search_by_keyword
它工作得很好,但当我在示例中添加PublishedAfter选项时search.setPublishedAfter(myDateTime)
它返回错误400消息":"错误请求"
YouTube.Search.List search = youtube.search().list("id,snippet");
String apiKey = properties.getProperty("youtube.apikey");
search.setKey(apiKey);
search.setQ(queryTerm);
search.setPublishedAfter(myDateTime) // the code works when removing this line
search.setFields("items(id/kind,id/videoId,snippet/title,snippet/thumbnails/default/url)");
search.setMaxResults(NUMBER_OF_VIDEOS_RETURNED);
SearchListResponse searchResponse = search.execute();
List<SearchResult> searchResultList = searchResponse.getItems();
我想使用setPublishedAfter选项
请帮助感谢
Youtube api v3表示"publishedAfter参数表示api响应应仅包含在指定时间后创建的资源。该值为RFC 3339格式的日期时间值(1970-01-01T00:00:00Z)"因此,您的问题很可能是因为您的日期格式。查看您的"myDateTime"对象。错误应该就在附近。还可以看看我的代码:
Calendar cal = Calendar.getInstance();
Date currentDateOfAmerica=cal.getTime();
cal.set(12, cal.get(12)-1);
Date dateOneMinuteBefore=cal.getTime();
DateTime dt1 = new DateTime(dateOneMinuteBefore);
DateTime dt2 = new DateTime(currentDateOfAmerica);
search.setPublishedAfter(dt1);
search.setPublishedBefore(dt2);
此代码段设置从现在到一分钟前上传的搜索视频
字段部分出现问题。你建议的字段部分没有描述最有可能发布的内容。
只需注释setFields
,就可以了。