【问题标题】:How to specify a "field" parameter in a YoutubeService method如何在 YoutubeService 方法中指定“字段”参数
【发布时间】:2013-01-26 04:56:41
【问题描述】:

我有一个经过适当授权的 YouTubeService,我可以使用它来检索“已登录”用户的视频列表。我的问题是我不知道如何过滤掉响应,以便降低配额限制的消耗。此外,我只需要知道视频的一些细节。这是我得到的:

私有静态 Google.Apis.Youtube.v3.YoutubeService _youtubeService;

公共静态无效GetList(字符串ID){
    var response = _youtubeService.Videos.List(id, "sn-p");

    // 这里发生一些处理
}

我想使用here 中描述的字段参数包含一个过滤器。我只想获取以下字段:片段及其标题和缩略图,并且在我的请求中有效地具有:fields=items(id,snippet(title,thumbnails(value)))。

我怎样才能做到这一点?

【问题讨论】:

    标签: youtube-api google-api-dotnet-client


    【解决方案1】:

    'setFields' 方法(它应该是从 YoutubeRequest 派生的大量对象的成员)不是为了做到这一点而设计的吗?像这样的:

    response.setFields("items(id,snippet/title,snippet/thumbnails/default/url)");
    

    【讨论】:

    • Videos.List 方法返回一个 ServiceRequest<VideoListResponse> 并且它没有 setFields 方法。顺便说一句,我指的是可以在here 找到的工具。我正在浏览源代码,我认为Youtube Google Api 的 v3 目前不支持“字段”过滤。
    • 我们可能需要确认您正在查看的工具是否支持它;它当然是整个 v3 API 的一部分。此链接:developers.google.com/apis-explorer/#s/youtube/v3/… 似乎表明它总体上是受支持的。您对 setFields 方法是正确的,那是我的错误;它不应该在响应对象上执行,而是在请求发送之前在请求对象上执行。
    • 是的,你是对的(重新链接)。我也玩过它,我知道至少一般来说它是受支持的,而且我链接的其他文档说它应该是可能的。只是他们没有将其包含在 dotnet 客户端中。我希望 Google Dotnet 团队正在关注这一点。他们包括它是非常重要的。当我测试我们的应用程序时,我正在观察我的 API 使用情况,我们当前代码的 api 使用情况对于我们正在尝试做的事情来说有点高。
    猜你喜欢
    • 1970-01-01
    • 2016-03-30
    • 1970-01-01
    • 2021-06-09
    • 1970-01-01
    • 2016-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多