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

Я использую API Google Диска (v3) с API-клиентом Google PHP для просмотра и отображения видео с моего Диска, где я также показываю миниатюры для указанных видео. У меня возникли трудности с получением 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) {
}
}...

person boogysi    schedule 28.12.2016    source источник
comment
Здесь есть несколько вопросов, которые делают вашу публикацию слишком широкой. См. раздел Как спросить. Вы также даже не удосужились пройти двухминутный тур по сайту.   -  person T-Heron    schedule 28.12.2016
comment
Я пересмотрел вопрос и удалил второстепенные вопросы.   -  person boogysi    schedule 28.12.2016


Ответы (3)


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

person KENdi    schedule 29.12.2016

Попробуйте 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
   },...

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

person Elon Zito    schedule 28.12.2016
comment
Привет Илон, спасибо за ответ. Я предполагаю, что это должно было работать в v2, но, похоже, не в v3. Я обновил свой первоначальный вопрос кодом запроса, который я использую, и ответом, где thumbnailLink по-прежнему игнорируется (возвращает null). - person boogysi; 28.12.2016

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

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().

person jbobbins    schedule 11.11.2017