README
Description
getSMS - This is Node.js module that allows you to interact with the SMS services api
Features
- Promises
- Suppurt
SMSActivate
,SMSHub
Installation
Node.js 12.0.0 or newer is required
Yarn
yarn add getsms
NPM
npm i getsms
Errors caught
Errors that can be caught with catch()
:
BAD_KEY
- Invalid api keyERROR_SQL
- Server database errorBAD_ACTION
- Bad request dataWRONG_SERVICE
- Wrong service identifierBAD_SERVICE
- Wrong service name',NO_ACTIVATION
- Activation not found.NO_BALANCE
- No balanceNO_NUMBERS
- No numbersWRONG_ACTIVATION_ID
- Wrong activation idWRONG_EXCEPTION_PHONE
- Wrong exception phoneNO_BALANCE_FORWARD
- No balance for forwardNOT_AVAILABLE
- Multiservice is not available for selected countryBAD_FORWARD
- Incorrect forwardWRONG_ADDITIONAL_SERVICE
- Wrong additional serviceWRONG_SECURITY
- WRONG_SECURITY errorREPEAT_ADDITIONAL_SERVICE
- Repeat additional service errorBANNED:YYYY-m-d H-i-s
- Account banned
if the ban code is BANNED:YYYY-m-d H-i-s
then the error object contains the properties banTime
, banDate
, banTimestamp
banTime
-YYYY-m-d H-i-s
(for example2020-12-31 23-59-59
)banTimestamp
- UnixtimebanDate
- JavaScriptnew Date()
Object
Usage example:
const {getSMS, ServiceApiError} = require('getsms');
const sms = new getSMS({
key: 'bc103fa02b63f986cd102a6d2f5c',
url: 'https://sms-activate.ru/stubs/handler_api.php',
service: 'smsactivate'
});
(async() => {
sms.getBalance().then(async(balance) => {
if(balance.balance_number > 0){
//Service - vk, operator - mts, country - russia (0)
await sms.getNumber('vk', 'mts', 0)
.then(async({id, number}) => {
console.log('Number ID:', id);
console.log('Number:', number);
//Set "message has been sent" status
await sms.setStatus(1, id);
//Wait for code
await sms.getCode(id).then(async({id, code}) => {
console.log('Code:', code);
await sms.setStatus(1, id); //Accept, end
});
})
.catch((error) => {
if(error instanceof ServiceApiError){
if(error.code === 'BANNED'){
console.log(`Banned! Time ${error.banTime}`);
} else {
console.error(error.code, error.message);
}
} else console.error(error)
});
} else console.log('No money');
}).catch((error) => {
if(error instanceof ServiceApiError){
console.error(error.code, error.message);
} else console.error(error)
})
})();
Methods
Constructor:
Syntax:
new getSMS({key: String, url: String, service: String [,interval: Number]})
Object:
key
* - API keyurl
* - Service api handler url (For example -https://sms-activate.ru/stubs/handler_api.php
)service
* - may contain the following values:smshub
smsactivate
interval
- by default 2000 ms. This is value forgetCode
polling interval
* - Required fields
Example:
const {getSMS: sms, ServiceApiError} = new getSMS({
key: 'bc103fa02b63f986cd102a6d2f5cf',
url: 'https://sms-activate.ru/stubs/handler_api.php',
service: 'smsactivate'
})
.getNumbersStatus()
Syntax:
sms.getNumbersStatus(country, operator)
Returns: Object
.getBalance()
Syntax:
sms.getBalance()
Returns:
Object
:
balance_string
-String
balance_float
-Number
balance_number
-Number
.getMultiServiceNumber()
Syntax:
sms.getMultiServiceNumber(multiService: Array, operator: String, country: Number, multiForward: Array, ref: String)
Returns: Object
Example:
sms.getMultiServiceNumber(multiService: ['vk', 'ab'], operator: 'mts', country: 0, multiForward: [1, 0], ref: String)
.getAdditionalService()
Syntax:
sms.getAdditionalService(id: Number, service: String)
Returns:
Object
:
id
Number
.getFullSms()
Syntax:
sms.getAdditionalService(id: Number)
Returns:
Object
:
status
- number statustext
- Is returning only if status is notSTATUS_WAIT_CODE
,STATUS_CANCEL
.getCountries()
Syntax:
sms.getCountries()
Returns: Object
.getQiwiRequisites()
Syntax:
sms.getQiwiRequisites()
Returns: Object
.getNumber()
Syntax:
sms.getNumber(service: String, operator: String, country: String, forward: String, phoneException: String, ref: String)
Returns:
Object
:
id
- Number idnumber
- Phone number
.setStatus()
Syntax:
sms.setStatus(status: Number, id: Number)
Returns:
Object
:
status
- Status from service
.getCode()
Syntax:
sms.getCode(id: Number)
Returns:
Object
:
status
- number status (STATUS_CANCEL
,STATUS_WAIT_RETRY
,STATUS_OK
)code
- Is returning only withSTATUS_WAIT_RETRY
,STATUS_OK
statuses
.getPrices()
Syntax:
sms.getPrices()
Returns: Object