Моя цель:
Я пытаюсь подключить свое настольное приложение Qt к Google Drive. Сейчас моя цель проста, т.е. получить список всех файлов с моего диска (в форме JSON)
То, что я сделал до сих пор.
Я следовал этому руководству Соединение вашего приложения Qt со Службами Google с использованием OAuth 2.0 и создание для него собственного класса-оболочки. Я выполнил все шаги до вызова функции grant (). Объем https://www.googleapis.com/auth/drive
. До сих пор все работает нормально.
Я использовал сигнал tokensReceived
, исходящий от QOAuthHttpServerReplyHandler
, и сохранил access_token. Короче говоря, я могу аутентифицировать свое приложение и получить токен доступа. Теперь следующий шаг для меня - выполнить простой запрос get. Это то, что я сделал
void Google_Drive::Send_Request()
{
QNetworkRequest request(QUrl("https://www.googleapis.com/drive/v3/files"));
request.setRawHeader("Authorization", QByteArray("Bearer ")+mAccessToken);
mManager.get(request);
}
Ошибка, которую я получаю:
Ответ, который я получаю
«Ошибка передачи https://www.googleapis.com/drive/v3/files - сервер ответил: запрещено»
Пожалуйста, дайте мне знать, что мне не хватает или я что-то делаю не так. Также, если требуется дополнительная информация, дайте мне знать. Спасибо!
Редактировать 1:
В этот раз при получении ответа я readAll()
вместо того, чтобы просто прочитать errorString()
, обнаружил, что API не включен. Поэтому я включил API с консоли разработчика. Теперь я после установки этого Теперь я получаю errorString()
как
"Ошибка передачи https://www.googleapis.com/drive/v3/about -
сервер ответил: Неверный запрос "
и reply->readAll()
возвращает
"{\ n \" error \ ": {\ n \" errors \ ": [\ n {\ n \" domain \ ":
\ "global \", \ n \ "причина \": \ "требуется \", \ n \ "сообщение \": \ "The
Для этого метода требуется параметр 'fields'. \ ", \ n
\ "locationType \": \ "параметр \", \ n \ "location \": \ "fields \" \ n} \ n
], \ n \ "code \": 400, \ n \ "message \": \ "Параметр 'fields' имеет значение
требуется для этого метода. \ "\ n} \ n} \ n"
Редактировать 2:
Мои извинения, чтобы проверить ответ, я использовал "https://www.googleapis.com/drive/v3/about" вместо" https://www.googleapis.com/drive/v3/files". Теперь исправление работает нормально.