youTube data API V3 - 使用PublishedAfter时搜索返回错误400

时间:2013-08-14 08:18:17

标签: java android youtube-api android-youtube-api

我正在通过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选项

请帮助 感谢

2 个答案:

答案 0 :(得分:0)

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);

此代码段设置从现在到一分钟之前上传的搜索视频

答案 1 :(得分:0)

你遇到了字段部分的问题。最有可能发表在后面的内容未在您建议的字段中描述。

只需注释setFields即可。