Загружаем файлы с Google Drive через API





В письмах вложений стали приходить ссылки на drive.google.com Ссылки не прямые. Качаем файлы через Google Drive API

Есть обработка входящей почты, которая обрабатывала письма от определенного адресата. В письме во вложении были файлы, которые складывались в нужную папку. В какой-то момент файлы превысили 20 Мб и гугловская почта вместо вложения стала вставлять в письмо ссылки на файлы. Необходимо было восстановить функционал. Поизучав тему, понял, что достаточно просто. Даже не нужно городить авторизацию по OAuth.

Будем считать, аккаунт в гугле уже есть. Заходим в консоль под собой. Первым делом включаем Google Drive API. Вибираем в списке доступных API

И включаем

Далее нужно получить ключ API. Идем в учетные данные.

И создаюем ключ.

Теперь созданный ключ будем использовать для доступа.

В обработке достаточно указать ключ и URL файла

В обработке все достаточно просто. Первым запросом получаю имя файла. Вторым уже качаем файл.

   ssl = Новый ЗащищенноеСоединениеOpenSSL(
Новый СертификатКлиентаWindows(),
Новый СертификатыУдостоверяющихЦентровWindows());

Соединение = Новый HTTPСоединение("www.googleapis.com",,,,,, ssl);


Запрос = Новый HTTPЗапрос("drive/v3/files/" + ИДФайла + "/?key=" + КлючAPI);

Ответ = Соединение.Получить(Запрос);
ИнфОФайле = Ответ.ПолучитьТелоКакСтроку();


Чтение = Новый ЧтениеJSON;
Чтение.УстановитьСтроку(ИнфОФайле);
Отв = ПрочитатьJSON(Чтение);

Запрос = Новый HTTPЗапрос("drive/v3/files/" + ИДФайла + "/?key=" + КлючAPI + "&alt=media");

Ответ = Соединение.Получить(Запрос);


Данные = Ответ.ПолучитьТелоКакДвоичныеДанные();

ПутьДляСохранения = "";

Д = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
Д.ПолноеИмяФайла = Отв.name;


Если Д.Выбрать() Тогда
Данные.Записать(Д.ПолноеИмяФайла);
КонецЕсли;

4 Comments

  1. nytlenc

    Ну как-то прям совсем кривоватенько…. Получение token по логину и паролю, а далее работу через него не судьба была реализовать?

    Reply
  2. user662672_explorer2000

    Нужен токен или файлы качать? Про токен уже писал здесь http://forum.infostart.ru/forum15/topic164841/, зачем повторяться?))

    Reply
  3. user662672_explorer2000

    (2) точнее здесь https://infostart.ru/public/574117/ ошибся, сори

    Reply
  4. Z_Z

    А у кого есть пример загрузки файла на гугл драйв?

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *