Как правильно получить список всех файлов в папке на Google Диске с помощью Curl php

Я слежу за этим Google Drive Search API Google Drive API Я использовал приведенный ниже код, чтобы успешно отобразить все файлы и папки на диске Google, и все работает нормально.

$access_token = 'xxxxxxxx';
$headers = array(
"Authorization: Bearer $access_token",
"Content-Type: application/json"
);



$ch = curl_init();                                                       
//curl_setopt($ch, CURLOPT_URL, "https://www.googleapis.com/drive/v3/files?trashed=false");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);


curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
$response = curl_exec($ch);

var_dump($response);

Вот моя проблема

Мне нужно получить все файлы в определенной папке, например myvideo_folder.

Я попробовал код ниже, но не смог заставить его работать. это выдает ошибку

{ "error": { "code": 404, "message": "File not found: .", "errors": [ { "message": "File not found: .", "domain": "global", "reason": "notFound", "location": "fileId", "locationType": "parameter" } ] } } " 

Вот код

$access_token = 'xxxxx';
$headers = array(
"Authorization: Bearer $access_token",
"Content-Type: application/json"
);

$folder_name='myvideo_folder';
$ch = curl_init();                                                       
//curl_setopt($ch, CURLOPT_URL, "https://www.googleapis.com/drive/v3/files?q='$folder_name' in parents");
curl_setopt($ch, CURLOPT_URL, "https://www.googleapis.com/drive/v3/files?q=%27$folder_name%27%20in%20parents");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);


curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
$response = curl_exec($ch);

var_dump($response);

Вы пробовали не кодировать свой запрос?

Justinas 19.06.2024 08:28

Вот как я закодировал свой запрос, который показывает ошибку, указанную в сообщении. curl_setopt($ch, CURLOPT_URL, "https://www.googleapis.com/drive/v3/files?q=%27$folder_name‌​%27%20in%20parents")‌​;

Nancy Moore 19.06.2024 08:29

если попытаться не кодировать запрос как curl_setopt($ch, CURLOPT_URL, "https://www.googleapis.com/drive/v3/files?q='$folder_name' in parents");, он отобразится bool(false)

Nancy Moore 19.06.2024 08:32

Сначала вам нужно получить идентификатор папки на диске (запрос с помощью «name='foldername' и mimeType='application/vnd.google-apps.folder' иrashed=false»), затем снова повторите запрос с «folderid в родительском элементе», чтобы получить файлы. Лучше использовать API-клиент Google Drive для PHP github.com/googleapis/google-api-php-client

shirshak007 19.06.2024 09:55

@shirshak007 вы можете обновить свой ответ как правильный ответ между Спасибо

Nancy Moore 19.06.2024 22:51
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
5
54
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Сначала нужно получить идентификатор папки Google Drive. Для этого выполните запрос с помощью

$query1 = "name='".$foldername."' and mimeType='application/vnd.google-apps.folder' and trashed=false";

Затем снова запрос с помощью

$query2 = "$folderid in parents";

Таким образом вы можете получить файлы.

Хотя это лучше и проще в использовании

API-клиент Google Drive для PHP: github.com/googleapis/google-api-php-client

Другие вопросы по теме