Ну наверно надо начать с чтения документации
Google Drive API.
Логин и пароль вам не понадобятся.
Аутентификация производится с помощью OAuth 2.0.
Первое что вам нужно сделать, это создать приложение через
Google API Console,получить реквизиты вашего приложения и подключить к нему Google Drive API.
Один из способов аутентификации с использованием кода подтверждения я опишу ниже.
- Cначала открываете пользователю (в системном браузере) URL:
https://accounts.google.com/o/oauth2/auth?scope={scope}&redirect_uri={redirect_uri}&response_type=code&client_id={client_id}
(Это можно сделать с помощью метода QDesktopServices::openUrl
где {scope} = "https://www.googleapis.com/auth/drive"
{redirect_uri} = "urn:ietf:wg:oauth:2.0:oob"
{client_id}= blablabla.apps.googleusercontent.com (айди вашего приложения)
Пользователь подтверждает доступ и копирует код подтверждения.
Вы предлагаете ввести код подтверждения в вашем приложении. Пользователь его вводит.
- Для получения access token нужно отправить POST запрос на сервер https://www.googleapis.com/oauth2/v3/token
с параметрами:
code - код подтверждения, введенный пользователем
client_id - айди вашего приложения (blablabla.apps.googleusercontent.com)
client_secret - секретный ключ вашего приложения
redirect_uri - тот же самый redirect uri, что и в первом случае
grant_type = "authorization_code"
Запрос можно сделать с помощью qnetworkaccessmanager
В ответе вы получаете access_token, который нужно будет использовать для запросов к Google Drive API.
Также в ответе будет refresh_token, который нужен для обновления access_token.
- Чтобы создать папку, вам понадобится отправить POST запрос на URL:
https://www.googleapis.com/drive/v3/files
В заголовках запроса прописать:
Authorization: Bearer <полученный access_token>
Content-Type: application/json
В теле запроса отправить json:
{
"title": "Название папки"
"mimeType": "application/vnd.google-apps.folder"
}
В ответ вам придет json с ID папки.
Как загрузить файл описано
здесь
Короче все элементарно.