Member 10042484 Ответов: 1

Как войти на Google Диск через libcurl с помощью REST


Всем Привет,

Я хочу подключиться к google Диску для отображения/загрузки/загрузки файлов с использованием имени пользователя и пароля через проект c++. Я пытался использовать библиотеку curl для достижения этой цели, но мне это не удалось.

Может ли кто-нибудь помочь/направить меня в достижении этого?
Основная проблема заключается в том, чтобы войти в систему пользователя google drive с именем пользователя и паролем.
Я думаю, что как только я смогу это сделать, я смогу двигаться вперед.

Раньше для этого существовала библиотека GDrive, но теперь она устарела.


Заранее Благодарю.
RCJ

Что я уже пробовал:

Я хочу подключиться к google Диску для отображения/загрузки/загрузки файлов с использованием имени пользователя и пароля через проект c++. Я пытался использовать библиотеку curl для достижения этой цели, но мне это не удалось.

Mohibur Rashid

https://tanaikech.github.io/2017/02/08/file-upload-and-download-with-file-convert-for-curl-using-drive-api/

попробуйте google

Member 10042484

Ссылка имеет только команды curl

1 Ответов

Рейтинг:
0

Michael Haephrati

Вы должны проверить 2 plages:
1. Google Drive API[^]
2. АПИ libcurl использует [^]

Вы также можете изучить основы общения с этим (и другими) API использует REST, так что вы можете выбрать другие библиотеки-оболочки или написать свои собственные.

С тех пор многое изменилось моя статья была написана[^] , но принцип тот же самый. Вы используете API Google для входа в систему.

Сначала вы подключаетесь к серверу:

BOOL Connect(LPCTSTR szServerName, INTERNET_PORT nServerPort = INTERNET_DEFAULT_HTTP_PORT);


У вас функция "подключения" должна быть примерно такой:

BOOL CSmartHTTP::Connect(LPCTSTR serverName, INTERNET_PORT serverPort)
{
  Disconnect();
  if (Initialize())
  {
    m_hConnection = InternetConnect(m_hInet, serverName, serverPort, 
      NULL, NULL, INTERNET_SERVICE_HTTP, 0, (DWORD_PTR) this);
  }
  return (CheckResult(m_hConnection != NULL));
}


Затем, не записывая весь код для вас, вы отправляете запрос и проверяете ответ.

if (SendRequest(res, rs.GetHandle(), header, content, contentLength))
{
  len = sizeof(httpStatus);
  if (!CheckResult(HttpQueryInfo(rs.GetHandle(), HTTP_QUERY_STATUS_CODE | HTTP_QUERY_FLAG_NUMBER,
    &httpStatus, &len, NULL)))
  {
    res = RES_EWININET;
  }
  else
  {
    result = ReadReplyEx(res, httpStatus, readCallback, userParam, rs.GetHandle());
  }