Предисловие
Мое веб-приложение хранит данные в
localStorage
. Это было удобно, пока не захотелось, чтобы пользователь, заходя на сайт с разных устройств, видел одно и то же. То есть, понадобилось удаленное хранилище.
Но приложение «хостится» на GitHub Pages и не имеет серверной части. Я решил не делать сервер, а данные хранить у третьей стороны. Это дает существенные преимущества:
- Не нужно платить за сервер, не болит голова о его стабильности и доступности.
- Меньше кода, меньше ошибок.
- Пользователю не нужно регистрироваться в моем приложении (это многих раздражает).
- Приватность выше, и пользователь знает, что его данные хранятся в месте, которому он, скорее всего, доверяет больше, чем мне.
Сначала выбор пал на
remoteStorage.js. Они предлагают открытый протокол обмена данными, достаточно приятное API, возможность интеграции с Google Drive и Dropbox, а также свои сервера. Но этот путь оказался тупиковым (почему — отдельная история).
В итоге решил использовать Google Drive напрямую, и
Google API Client Library (далее GAPI) как библиотеку для доступа к нему.
К сожалению, документация Google разочаровывает, а библиотека GAPI выглядит недоработанной, к тому же имеет несколько версий, и не всегда понятно, о какой из них идет речь. Поэтому решение моих задач пришлось собирать по кусочкам из документации, вопросов и ответов на StackOverflow и случайных постов в интернете.
Надеюсь, данная статья сэкономит вам время, если вы решите использовать Google Drive в вашем приложении.