Подготовьте место для секрета и место для ответа
Заранее выберите, где сервер будет хранить секрет, а где вы сохраните ответ PostgreSQL для проверки полей. Это разные файлы с разным назначением. Ключ нужен процессу получения данных; в примере ответа и в правилах сопоставления ему места нет. Сначала определите этот процесс, затем настройте его доступ.
Процесс начинается с простой регистрации по электронной почте и паролю длиной от 12 до 72 байт. Вам не нужно подключать внешние криптокошельки или входить через сторонние сервисы вроде Google. Сразу после успешной регистрации система отображает ваш уникальный ключ API один раз непосредственно перед этапом оплаты. Этот ключ привязан к конкретному арендатору и не является общим для всей сетевой инфраструктуры. В случае утери ключ его нельзя просто восстановить по ссылке; вместо этого авторизованный пользователь может сгенерировать новый ключ, подтвердив свой пароль, при этом предыдущий ключ аннулируется мгновенно.
Длина пароля измеряется в байтах UTF-8, а не в видимых символах: кириллица может занимать несколько байт на символ. Храните пароль и показанный ключ самостоятельно. При обычном входе полный ключ повторно не отображается и по почте не доставляется. Функции сброса пароля нет. Необязательные 100 пробных кредитов зависят от общих ограничений против злоупотреблений и могут не предоставляться конкретной регистрации.
Передайте ключ процессу извлечения
Запустите запрос q=index&subreddit=PostgreSQL&limit=3 через /v1/search со своего сервера. Для чтения подходят X-API-Key с ключом либо Authorization: Bearer с тем же ключом. Сессионная cookie кабинета не заменяет авторизацию API. Не сохраняйте ключ вместе с примером ответа, в публичном исходном коде или клиентском JavaScript. Преобразователь должен получать его из конфигурации вашего приложения, отдельно от рабочих данных.
Разберите исход первого запуска
Сайт использует Secure HttpOnly cookie сессии; в localStorage для данного хоста сохраняются идентификаторы пользователя и счёта, но не исходный API-ключ. При разборе ответа учитывайте пропущенные поля и неожиданные типы. Коды 401, 402 и 429 означают проблему ключа, нехватку кредитов и ограничение частоты соответственно. Бесплатный /v1/status подтверждает ответ HTTP-сервера, но не правильность ключа, баланс или наличие нужных данных.
После запуска различайте полученную страницу, ошибку своего преобразователя и отсутствие ответа на стороне клиента. Правила преобразования исправляйте на сохранённом входе. Если ответ потерян, сервер мог уже выполнить платный запрос; успешный повтор спишет ещё один кредит. Запишите эту неопределённость в журнал, не считая тайм-аут доказательством отсутствия списания.
Пополняйте баланс для следующего получения данных
Кабинет находится на странице получения ключа. После входа можно посмотреть баланс redditextract.com, создать счёт и заменить ключ, подтвердив пароль. Замена немедленно отключает прежний ключ, поэтому обновите секрет в своём серверном задании. Другой сайт сети использует свой ключ и баланс. Общая защита пробных начислений от злоупотреблений не объединяет аккаунты в один кошелёк.
Один успешный запрос стоит один кредит, включая пустой; $1 соответствует 1000 успешных запросов. Минимальные $50 добавляют 50000 платных кредитов. Подписок нет, платные кредиты не сгорают. Для пополнения выберите USDT TRC20 либо USDC ERC20 в основной сети Ethereum, создайте счёт и используйте только его адрес получателя, точную сумму, токен и сеть. После перевода отправьте хеш транзакции на проверку, не рассчитывая на гарантированную скорость.
Счёт действует один час после создания. Перед переводом сверьте его текущий адрес получателя и точную сумму, не полагаясь на старую запись. Затем отправьте хеш транзакции на проверку. При сбое провайдера проверка может оставаться в ожидании; ориентируйтесь на её результат, а не на предположение о пополнении.