@DreamTeam в данном модуле, отсутствует функция "Удалить текущий элемент".
Элемент можно удалить получив либо его индекс, либо по значению.
добавьте 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 не имеет никакой информации.
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]]- это переменная содержащая номер
Использую модуль, что идет в текущей версии BAS.
Использую sms-activate.org, хочу получить кол-во номеров по стране и мобильному оператору, судя по описанию API это возможно. Модуль же в запросе шлет только страну, игнорируя заполненное поле оператора.
В поле оператор текстовое значение наименования оператора. Страна RU.

Цитата из https://sms-activate.org/en/api2:

Что шлет модуль(нет параметра оператор):
Url: https://api.sms-activate.org/stubs/handler_api.php?api_key=API_KEY_HERE&action=getNumbersStatus&country=0&ref=browserAutomationStudio
Method: GET