@NotLetters Спасибо!
Подскажите, блок получение писем, будет искать последнее письмо?
PhoneVerification - Модуль для работы с API сервисов приема SMS
-
@persiss said in PhoneVerification - Модуль для работы с API сервисов приема SMS:
@Fox Пишет ошибку "Сервиса vak-sms.ru нет в списке доступных"
Вы читали описание действия?

-
добавьте smslive.pro, апи как у смс-активейта, но через кастомный юрл не получается взять код, спасибо
-
@pretty_mouse Почему не работает? Должно. Что возвращает запрос? какую ошибку?
-
@pretty_mouse Приложите скриншоты что делаете - что получаете. С хттп снифера тоже можно.
-
@persiss, Версия 1.3 - PhoneVerification.zip:
Обновлен список стран
Список сайтов обновлен и отсортирован по алфавиту
Исправлено получение номера дляgive-sms.com
cheapsms.ru->cheapsms.io
onlinesim.ru->onlinesim.io
sms-acktiwator.ru->smsak.org
vak-sms.com->vak-sms.ru
Удаленыactivation.pwиsmsvk.net
Добавлена возможность указать максимальную цену при получении номера (sms-activateиsmshub) -
Добавьте пожалуйста сервис smslive.pro
-
У меня возникла довольно нестандартная задача(как обычно, впрочем) вызывать модуль и сохранять его состояние, чтобы в другом потоке его потом вызвать с восстановленным состоянием.
Зачем мне это надо:
В основном потоке я регистрирую аккаунт, в процессе регистрации я выясняю что мне нужно. Уже после получения номера от сервиса я проверяю, нужен ли мне этот номер или нет.
Проверка должна происходить в отдельном браузере, поэтому я стартую новый поток, получаю номер, проверяю его подходит ли он мне, если нет, получаю еще раз новый и так далее.
Как я получу подходящий номер, я не подходящие отменяю и возвращаю из потока подходящий номер.В основном потоке я продолжаю регистрацию аккаунта и мне нужно получить номер OTP, для чего мне и нужно восстановить состояние объекта _SMS, так как это другой поток и объект _SMS не имеет никакой информации.
Что я пробовал:
- получал номер, проверял его, сохранял состояние объекта(сериализация) _SMS с помощью _JSON.stringify():
log(JSON.stringify(_SMS.confirmData)) log(JSON.stringify(_SMS.apiData)) // Variable holding the name of the property to update // уникальный ключ состояния объекта, в будущем объект // должен быть восстановлен по этому ключу var propertyName = [[STATE_IDENTIFIER]]; // Step 1: Retrieve the object using the P function var jsonString = P("basglobal", "_SMS_OBJECT_STATE"); // Step 2: Parse the JSON string to get the object // If the object doesn't exist yet, default to an empty object var obj = jsonString ? JSON.parse(jsonString) : {}; // Step 3: Update the desired property of the object obj[propertyName] = {confirmData: _SMS.confirmData, apiData: _SMS.apiData}; // Step 4: Convert the updated object back to a JSON string var updatedJsonString = JSON.stringify(obj); // Step 5: Save the updated object using the PSet function PSet("basglobal", "_SMS_OBJECT_STATE", updatedJsonString);- Восстанавливал как:
// clean first _SMS.apiData = {}; _SMS.confirmData = {}; _SMS.debug = false; // Variable holding the name of the property to restore var propertyName = [[STATE_IDENTIFIER]]; // Step 1: Retrieve the saved JSON string using the P function var jsonString = P("basglobal", "_SMS_OBJECT_STATE"); var savedObj = jsonString ? JSON.parse(jsonString) : {}; var obj = savedObj[propertyName]; _SMS.apiData = obj.apiData; _SMS.confirmData = obj.confirmData; _SMS.debug = obj.debug; log([[LOG_PREFIX]]+ " state restored, _SMS.confirmData: " + JSON.stringify(_SMS.confirmData) + "; _SMS.apiData: " + JSON.stringify(_SMS.apiData));Ожидаемо это не сработало, так как ограничения сериализатора JSON.stringify/JSON.parse.
Ищу пути, как по другому сохранять и восстанавливать состояние объекта _SMS.
Было бы очень удобно, если были бы функции saveState(сериализованные данные состоянии объекта) и restoreState(десерилизация).
-
@sergerdn, @GhostZ said in PhoneVerification - Модуль для работы с API сервисов приема SMS:
Сохранить так:
[[CONFIRM_DATA]] = _SMS.getConfirmData([[NUMBER]], true);Установить так:
_SMS.setConfirmData([[CONFIRM_DATA]]); -
@persiss, @GhostZ said in PhoneVerification - Модуль для работы с API сервисов приема SMS:
Вы можете получить id выполнив код:
[[ID]] = _SMS.getConfirmData([[NUMBER]]).id, где[[NUMBER]]- это переменная содержащая номер


