gpt4 book ai didi

php - Youtube 数据 api v3 未按预期工作

转载 作者:可可西里 更新时间:2023-10-31 23:28:48 24 4
gpt4 key购买 nike

我正在为 youtube 使用搜索 api:

https://developers.google.com/youtube/v3/docs/search/list

我总共得到 40191 条记录,每页我设置了最多 50 条。

但我每次都得到 17 个结果。

这些是我用来获取记录的选项:

// SET OPTIONS FOR API
$optionsArray = array(
'q' => $_GET['q'],
'maxResults' => 50,
'order' => 'date',
'type' => 'video'
);

// Send request
$searchResponse = $youtube->search->listSearch('id, snippet', $optionsArray);

同时设置 pageToken 也不起作用。即使在应用 nextPageToken 之后,记录也是一样的。我在这里遗漏了什么吗?

最佳答案

您只得到 17 个结果的原因是您请求的 order 属性。如果你删除这个属性,你会得到更多的结果。 order='date' 未按预期工作。

一些解决方法(仅示例):

$DEVELOPER_KEY = 'THEKEY';
$client = new Google_Client();
$client->setDeveloperKey($DEVELOPER_KEY);

//Define an object that will be used to make all API requests.
$youtube = new Google_Service_YouTube($client);

try {
// Call the search.list method to retrieve results matching the specified
// query term.
$searchResponse = $youtube->search->listSearch('id,snippet', array(
'q' => $_GET['q'],
'maxResults' => $_GET['maxResults'],
'type' => 'video'
));

function sortResponse($date1, $date2) {
$date1 = new DateTime($date1['snippet']['publishedAt']);
$date2 = new DateTime($date2['snippet']['publishedAt']);
//"<" - sort DESC
//">" - sort ASC
return $date1 < $date2;
}

$items = $searchResponse['items'];
usort($items, "sortResponse");

//now your sorted items are in $items...
}

您可以将所有回复项目合并到一个数组中,并使用自定义排序功能通过 publishAt 获取顺序。

API Document:
https://developers.google.com/youtube/v3/docs/search/list?hl=de#parameters

Related Question:
When I use order-date in youtube api then there are total results but items are not found

关于php - Youtube 数据 api v3 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36112208/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com