9.5 Примеры и руководства
Так как Bubble API позволяет сторонним сервисам связываться с вашим приложением, реализация для каждого из них будет отличаться. Вот 3 примера использования Bubble API в реальных ситуациях.
Уведомление пользователей об ошибке оплаты подписки через Stripe
Типичный вариант использования Bubble API - осуществление вашим приложением каких-либо действий в случае, когда что-то происходит на стороне другого сервиса. В нашем случае произойдет несколько шагов как на стороне Bubble, так и на стороне Stripe. Мы начнем с того, что у нас есть приложение, в котором уже установлен плагин Stripe с настроенными во вкладке Плагины ключами. Мы также предположим, что процессы оплаты сохраняют ID пользователя в Stripe в сущности пользователе, нам нужно, чтобы он из ID, предоставляемого Stripe, попал в сущность пользователя, чтобы получить его/её адрес электронной почты.
В данном примере мы предполагаем, что домен приложения
https://stripeexample.bubbleapps.io
Начнем со стороны Bubble. Нам нужно задать точку входа API, которая будет срабатывать при ошибке списания средств с карты. Этот API процесс должен содержать действие, отправляющее пользователю письмо с сообщением, предлагающим ему или ей обновить данные карты. Поэтому, давайте начнем с создания нового API события, которое назовем "chargefailed" (ошибкасписания).
Мы создаем эту точку входа публичной, чтобы Stripe смог её запустить через webhook (см ниже), и для простоты сделаем возможным её запуск без аутентификации.
Посмотрев документацию (!!!ЛНК!!!) Stripe мы видим, что он посылает при срабатывании вебхука. Сервер Stripe делает запрос к нашей точке входа и посылает в теле запроса ID события. Поэтому мы добавляем параметр ID текстового типа к нашему вызову.
Использовать действие Send Email для отправки пользователю письма.
Использовать ID, отправленный Stripe, для получения "объекта События"/"Event object" (!!!ЛНК!!!). Это событие содержит ID покупателя и объект оплаты.
Выполнить поиск по базе данных для того, чтобы получить пользователя с данным ID покупателя.
Написать дружелюбное напоминание.
Начнем с добавления действия и заполним поле "Кому"/"To". При этом, нам важно понять, что нам нужно и от этого строить дальнейшие действия. Поэтому, мы начнем с поиска пользователей, добавим ограничение по полю "ID покупателя"/"Customer ID" и в качестве значения зададим результат API вызова от Stripe. Вот такой будет поиск.
API процедура называется "Get Stripe event", и нам нужно отправить именно тот event_id, который был получен от Stripe с первоначальным запросом (вебхуком). Этот параметр является первым в выпадающем списке, выбираем его.
На этом этапе мы извлекли "объект События Stripe"/"Stripe Event object" , и нам нужно получить "ID Покупателя"/"Customer ID" и выражение для поиска будет готово.
Теперь мы можем вернуться к полю "Кому"/"To" действия Send Email и получить email пользователя. Обратите внимание, что поиск возвращает список пользователей. В данном случае мы знаем, что Customer ID уникален для каждого пользователя, но нам нужно получить первый элемент в списке, чтобы перейти от списка пользователей к конкретному пользователю, а затем получить его email.
Теперь мы можем завершить действие добавлением сообщения, которое хотим послать.
Мы настроили все на стороне Bubble. Подытожим, что делает наш процесс:
Получает ID События, посланный Stripe через вебхук.
Запрашивает Event object и получает Customer ID
Осуществляет поиск по базе дынных приложения и получает пользователя по этому Customer ID
Посылает email пользователю, которого нашел поиск.
Полный адрес для этого процесса, как описано в справочнике (!!!ЛНК!!!):
https://stripeexample.bubbleapps.io/api/1.1/wf/chargefield
Еженедельная рассылка
Этот пример описывает создание системы, в которой пользователи могут включать и отключать еженедельную рассылку. Мы затронем логику и процессы для настройки еженедельного действия, а содержание письма трогать не будем.
Начнем с активации API для POST/Процессов (POST/Workflow API) для нашего приложения во вкладке Настройки. Обратите внимание, что для этого у вас должен быть платный тариф.
Создание скрипта для чтения данных из базы данных
API для GET/Данных позволяет читать данные программными методами. Это можно делать с помощью другого приложения, но также с помощью скриптов для сохранения или вывода данных на экран. Этот пример показывает, как это сделать на языке Python. Мы напишем этот скрипт для приложения, которое находится на домене yourapp.com и наша цель - получить все чеки. Это предполагает, что в нашем приложении есть тип с названием "invoice". Ограничений мы не добавляем, но это легко сделать, как описано в справочнике (!!!ЛНК!!!).
Ключевая идея в таком скрипте - разбивка на страницы (!!!ЛНК!!!). Когда вы делаете запрос по API, вам нужно задать, откуда начинать и сколько элементов запросить. Каждый ответ от GET API будет возвращать количество оставшихся элементов. В нашем примере нам нужно начать с увеличенного на один значения последнего элемента предыдущего вызова.
Такой скрипт может использоваться (и адаптироваться) для сохранения данных вместо их вывода, отображать данные, подходящие под какие-то ограничения и т.д.
Last updated