0

我管理一个 YouTube CMS,并试图计算给定月份内的上传次数。一个 CMS 可以有多个频道,我想要上传的总数。

从文档中,我觉得这应该可行:

function videosList($service, $part, $params) {
    $params = array_filter($params);
    $response = $service->search->listSearch($part,$params);
    print_r($response);
}

videosList($youtube,"snippet",array(
    array('forContentOwner' => true),
    'type' => 'video',
    'maxResults' => 1,
    'onBehalfOfContentOwner' => $CMSID,
    'publishedBefore' => date("c",strtotime("first day of this month")),
    'publishedAfter' => date("c",strtotime("first day of last month"))            
));

但结果是列出了时间范围内的所有公共视频,而不仅仅是来自我在 $CMSID 中管理的频道的视频。

作为参考,API 文档说:

forContentOwner 参数将搜索限制为仅检索由 onBehalfOfContentOwner 参数标识的内容所有者拥有的视频。如果 forContentOwner 设置为 true,则请求还必须满足以下要求: onBehalfOfContentOwner 参数是必需的。授权请求的用户必须使用与指定内容所有者关联的帐户。type 参数值必须设置为 video。不能设置以下其他参数:videoDefinition、videoDimension、videoDuration、videoLicense、videoEmbeddable、videoSyndicated、videoType。

4

1 回答 1

0

如果您参考文档,您会发现您缺少可以使用该forMine参数的部分。正如这篇SO 帖子中所讨论的那样。

forMine 布尔值

此参数只能在经过适当授权的请求中使用。forMine参数将搜索限制为仅检索经过身份验证的用户拥有的视频。如果将此参数设置为true,则type参数的值也必须设置为video。此外,不能在同一请求中设置以下其他参数:videoDefinitionvideoDimensionvideoDurationvideoLicensevideoEmbeddablevideoSyndicatedvideoType

当您查看另一个 SO 帖子时,这里还引用了它,

问题是您使用的搜索限制冲突。要使您的搜索工作,请将forMine参数留空,这样它就不会与您的日期过滤器以及可能的q参数冲突。

于 2018-01-25T12:14:49.893 回答