help.chat-api.com

Интеграция messengers API с Google drive

Данный шаблон звена позволит Вам сохранять файлы из сообщений messengers в Google drive. Для работы с сервисом необходимо пройти этапы настройки собственного «сервиса» по сохранению файла, так как Google drive не имеет метода, который позволил бы сохранять файлы через url.

Настройка

В первоначальной настройки Вам необходимо указать адрес функции, которая будет развернута на сервере Google cloud. Об этом ниже:

1 - Для начала создайте новый проект в Google cloud или выберите уже имеющийся проект;

2 - В проекте должен быть подключен биллинг для дальнейшей корректной работы.  Об этом Вам также напомнит сам Google при попытке подключить API;

3 - Далее необходимо перейти в раздел библиотек проекта, найти и подключить “Cloud Build API” - оно Вам понадобится для развертывания функции.

А также подключить “Google Drive API" - это API для непосредственного подключения к Google диску.

4 -После этого необходимо добавить сервисного пользователя к проекту: переходим в serviceaccounts и добавляем сервисный аккаунт. 

 

Указываем какое угодно имя.

Во вкладке Permissions, добавляем пользователю права Owner.

5 - Далее переходим в интересующую нас папку Google Drive и выдаем на нее разрешение на только что созданный сервисный аккаунт. Для этого щелкаем по ней правой кнопкой, выбираем опцию “открыть доступ”.

После чего добавляем адрес сервисного аккаунта, а также право на редактирование и кликаем отправить.

 Этот адрес можно найти по ссылке, выбрав нужный проект.

6 - Создаем новую Google функцию, которая будет сохранять файл на Google диск. Для этого необходимо перейти по адресу, выбрать наверху интересующий проект и создать новую функцию. 

7 - В настройках функции указываем удобный для Вас регион, задаем название функции.

Можно сразу скопировать полный адрес ссылки в Ваш виджет в Chat API.

Ниже в настройках функции указываем, что аутентификация разрешена и для неавторизованных пользователей. Нажимаем “сохранить”. Ниже, если предполагается сохранять файлы более 256 мегабайт, указываем 512 мегабайт.

В части где указывается пользователь, под которым будет выполняться код (runtime service account), необходимо указать Вашего пользователя, иначе доступ к Drive API будет недоступен, нажимаем “продолжить”.

 8 - Копируем index.js и package.json из проекта https://github.com/chatapi/chainapi-google-drive в открывшееся окно.

9 -Далее необходимо поменять параметр sharedFolderKey в index.js.

Зайдите в папку на которую Вы выдали права в Google drive , в адресе находится идентификатор этой папки, например в адресе "https://drive.google.com/drive/folders/0BxL2BKcYFzUQTDJYV1djOEtnYzg?something=0-WVKid8cJNA2-Nw" идентификатором будет 0BxL2BKcYFzUQTDJYV1djOEtnYzg.

Если Вы не хотите, чтобы файлы автоматически были доступны для всех пользователей в константе shareFile внутри index.js необходимо поставить "false".

В верхнем правом углу настроек функции необходимо указать в точке входа (entry point) функцию download.

 

Нажимаем кнопку «деплой» и ждем завершения процесса.

10 - После этого Вы можете продолжать первоначальную настройку в цепочках API. Если Вы забыли вписать адрес функции - дождитесь завершения ее деплоя, зайдите в редактирование и скопируйте адрес.

После чего Вам необходимо будет в динамических данных указать, откуда брать url файла.

Ответ

В успешном ответе может содержаться параметр sharedLink и/или параметр directDownloadLink, первый необходим для прямого перехода к файлу в Google драйв, последний для прямого скачивания. 

Если файл весит больше 100 мегабайт то Google не позволит по прямой ссылке скачать файл из-за встроенного антивируса. Обход подобных ограничений возможен: https://bytesbin.com/skip-google-drive-virus-scan-warning-large-files/ , но мы не рекомендуем отдавать Ваш API ключ во внешние ресурсы.

В случае неудачи вам вернется описание ошибки в параметре err и статусом 500.

Была ли эта статья полезной?

Ваше мнение будет использовано для улучшения содержания статьи

Самый Многофункциональный API провайдер

Chat API работает с 2015 года и является одним из первых и самых крупных провайдеров в восточной Европе.

Вот несколько любопытных и важных цифр:

  • У нас огромная экспертиза в управлении докер контейнерами на масштабе с SLA 99.5+%;
  • Chat API задействует в своей работе более 200 серверов, с возможностью оперативного подключения еще 100;
  • 3200 ядер и 25 терабайт оперативной памяти;
  • 200+ методов и функций, которые продолжают пополняться;
  • Highload система, сервера Up Time 99,9%;
  • Служба поддержки 24\7;
Получить доступ к API