Параметры миниатюрного API Google Диска

Я использую Google Drive API (v3) с PHP API-клиентом Google для отображения и отображения видео с моего диска, где я также отображаю эскизы для указанных видео. У меня возникают трудности при получении URL-адресов миниатюр от API, хотя я включил thumbnailLink в параметрах запроса:

'fields' => 'nextPageToken, files(id, name, thumbnailLink, webContentLink, webViewLink)'

Значение для thumbnailLink все еще пусто, другие значения возвращаются успешно. Я искал настройки миниатюр в документации API, но безуспешно. API также не возвращает никаких ошибок. Что бы это могло быть?

Вот код, который я использую:

$drive_service = new Google_Service_Drive($client);

$optParams = array(
'pageSize' => 4,
'q' => "'0B_nSMgQioOWwNy1ha0tFWEE0QWs' in parents and mimeType contains 'video/'",
'fields' => 'nextPageToken, files(id, name, modifiedTime, mimeType, createdTime, thumbnailLink, webContentLink, webViewLink)'
);

return $files_list = $drive_service->files->listFiles($optParams)->getFiles();

и var_dump ответа

array(4) {
[0]=>
object(Google_Service_Drive_DriveFile)#590 (56) {
["collection_key":protected]=>
string(6) "spaces"["appProperties"]=>
NULL
["capabilitiesType":protected]=>
string(42) "Google_Service_Drive_DriveFileCapabilities"["capabilitiesDataType":protected]=>
string(0) ""["contentHintsType":protected]=>
string(42) "Google_Service_Drive_DriveFileContentHints"["contentHintsDataType":protected]=>
string(0) ""["createdTime"]=>
string(24) "2016-09-12T19:54:22.000Z"["description"]=>
NULL
["explicitlyTrashed"]=>
NULL
["fileExtension"]=>
NULL
["folderColorRgb"]=>
NULL
["fullFileExtension"]=>
NULL
["headRevisionId"]=>
NULL
["iconLink"]=>
NULL
["id"]=>
string(35) "1St7nQ3X3-ocrMUC2t-r6NOVc4xIdfhbIgg"["imageMediaMetadataType":protected]=>
string(48) "Google_Service_Drive_DriveFileImageMediaMetadata"["imageMediaMetadataDataType":protected]=>
string(0) ""["isAppAuthorized"]=>
NULL
["kind"]=>
NULL
["lastModifyingUserType":protected]=>
string(25) "Google_Service_Drive_User"["lastModifyingUserDataType":protected]=>
string(0) ""["md5Checksum"]=>
NULL
["mimeType"]=>
string(9) "video/mp4"["modifiedByMeTime"]=>
NULL
["modifiedTime"]=>
string(24) "2016-12-27T11:55:43.958Z"["name"]=>
string(12) "MOV_1950.mp4"["originalFilename"]=>
NULL
["ownedByMe"]=>
NULL
["ownersType":protected]=>
string(25) "Google_Service_Drive_User"["ownersDataType":protected]=>
string(5) "array"["parents"]=>
NULL
["permissionsType":protected]=>
string(31) "Google_Service_Drive_Permission"["permissionsDataType":protected]=>
string(5) "array"["properties"]=>
NULL
["quotaBytesUsed"]=>
NULL
["shared"]=>
NULL
["sharedWithMeTime"]=>
NULL
["sharingUserType":protected]=>
string(25) "Google_Service_Drive_User"["sharingUserDataType":protected]=>
string(0) ""["size"]=>
NULL
["spaces"]=>
NULL
["starred"]=>
NULL
["thumbnailLink"]=>
NULL
["trashed"]=>
NULL
["version"]=>
NULL
["videoMediaMetadataType":protected]=>
string(48) "Google_Service_Drive_DriveFileVideoMediaMetadata"["videoMediaMetadataDataType":protected]=>
string(0) ""["viewedByMe"]=>
NULL
["viewedByMeTime"]=>
NULL
["viewersCanCopyContent"]=>
NULL
["webContentLink"]=>
string(82) "https://drive.google.com/uc?id=1St7nQ3X3-ocrMUC2t-r6NOVc4xIdfhbIgg&export=download"["webViewLink"]=>
string(85) "https://drive.google.com/file/d/1St7nQ3X3-ocrMUC2t-r6NOVc4xIdfhbIgg/view?usp=drivesdk"["writersCanShare"]=>
NULL
["internal_gapi_mappings":protected]=>
array(0) {
}
["modelData":protected]=>
array(0) {
}
["processed":protected]=>
array(0) {
}
}...

4

Решение

Попробуйте перепроверить, правильно ли вы используете правильный прицел. Я предлагаю вам использовать https://www.googleapis.com/auth/drive для полной разрешительной области для доступа ко всем файлам пользователя. Если он все еще не работает, попробуйте предлагаемое решение Вот.

1

Другие решения

Пытаться items.thumbnailLink

Вот как выглядит ответ от Drive API.

{
"kind": "drive#fileList",
"etag": "\"m64ksZC09nG4-fB1IRF3vg/1C1ON4SO5V-To1u55k7dU\"",
"selfLink": "https://www.googleapis.com/drive/v2/files?corpus=DEFAULT",
"nextPageToken": "V1*3|0|ChwwQjdXTWpmWkhhWHllTW1ObtQq",
"nextLink": "https://www.googleapis.com/drive/v2/files?corpus=DEFAULT&pageToken=V1*3%7C0%7CChwwQjdVUnFTR05mZGpREgcQsonGqtQq",
"items": [
{
"kind": "drive#file",
"id": "1DpsZKiII1pOsHxDrJDzBb_aW841Ovhm8pE5FCI",
"etag": "\"m64ksZC09nG4-fB1IRF3vg/1C1ON4SO5V-To1u55k7dU\"",
"selfLink": "https://www.googleapis.com/drive/v2/files/1DpsZKiII1pOsHbrEzvxDrJDzBb_aW841Ovhm8pE5FCI"...

},
"defaultOpenWithLink": "https://docs.google.com/spreadsheets/d/1DpsZKihm8pE5FCI/edit?usp=drivesdk",
"iconLink": "https://ssl.gstatic.com/docs/doclist/images/icon_11_spreadsheet_list.png",
"thumbnailLink": "https://docs.google.com/feeds/vt?gd=true&id=1DpsZKiInoAAAAAWGPVboChWb270pOAY0M5hMr3FNa-IX6G&sz=s220",
"title": "Document Title",
"mimeType": "application/vnd.google-apps.spreadsheet",
"labels": {
"starred": false,
"hidden": false,
"trashed": false,
"restricted": false,
"viewed": true
},...

Надеюсь это поможет!

0

Я знаю, что вы пытаетесь получить список файлов, и он получает ссылку только из одного, но это бы мне очень помогло, и я думаю, что это достаточно схоже по концепции, чтобы быть потенциально полезным для других:

function getThumbnailUrl($fileId)
{
$service = new Google_Service_Drive($this->client());
$params = array('fields' => 'hasThumbnail, thumbnailLink');
$file = $service->files->get($fileId, $params);
$url = $file->getThumbnailLink();

return $url;
}

Меня все еще интересует, удалось ли вам получить ссылки на миниатюры для нескольких файлов с помощью getFiles ().

0
По вопросам рекламы [email protected]