2

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

请帮忙谢谢

4

2 回答 2

0

您在字段部分遇到问题。您建议的字段部分中没有描述最有可能发布的内容。

只需注释掉setFields,应该可以工作。

于 2013-08-14T14:27:04.130 回答
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);

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

于 2013-08-14T13:00:23.633 回答