@Termoslik
Студент, 19лет

Как синхронизовать файл через Google Drive API?

У меня есть прикладное приложение написанное на С++ и Qt5. Оно создаёт нужный мне файл. Как создать "заливание/выкачивание" на/из Google Driv'a соответственно, с учётом того что логин/пароль от аккаунта гугл имеется. Нужно создать папку на диске в корне и в неё залить файл.
В какую сторону рыть?
  • Вопрос задан
  • 75 просмотров
Решения вопроса 1
SerJook
@SerJook
кодер
Ну наверно надо начать с чтения документации Google Drive API.
Логин и пароль вам не понадобятся.
Аутентификация производится с помощью OAuth 2.0.
Первое что вам нужно сделать, это создать приложение через Google API Console,получить реквизиты вашего приложения и подключить к нему Google Drive API.

Один из способов аутентификации с использованием кода подтверждения я опишу ниже.

  1. 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 (айди вашего приложения)

    Пользователь подтверждает доступ и копирует код подтверждения.
    Вы предлагаете ввести код подтверждения в вашем приложении. Пользователь его вводит.

  2. Для получения 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.

  3. Чтобы создать папку, вам понадобится отправить 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 папки.


    Как загрузить файл описано
здесь
Короче все элементарно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы