Статические методы Редактировано: 28.08.2020 в 04:16
Статические методы - это такие методы, которые не требуют инициализации объекта. То есть в нашем случае, эти методы не требуют авторизации. В большинстве случае библиотеки EasyVK статические методы - вспомогательные методы для решения каких-либо задач
Обращение ко всем статическим методам происходит следующим образом.
const easyvk = require('easyvk')
easyvk.static.call() //Пример
static.call()
Если вы хотите сделать запрос, который не требует авторизации, или, вам просто не хочется инициализировать объект EasyVK, а просто проверить, как все работает, то можете использовать этот метод. На пример: вам захочется обратиться к методу users.get, вы можете это сделать так:
easyvk.static.call('users.get', {
user_ids: [1]
}).then((vkr) => {
console.log(vkr)
}).catch(console.error)
Все параметры повторяются из метода vk.call()
Если вам необходимо сделать запрос с access_token, вы можете отправить его в параметры. Все это реально.
static.urlencode()
Данный метод сериализует объект в URI подстроку.
Принимает всего один параметр - объект с глубиной 1, возвращает строку URI.
const request = require('request')
const urlApi = 'https://api.vk.com/method/'
const methodName = 'messages.send'
const p = {
v: '5.73',
user_id: 356607530,
access_token: 'ваш_токен',
message: 'Hi!'
}
const parameters = '?' + easyvk.static.urlencode(p)
request.get(urlApi + methodName + parameters, (err, res) => {
console.log(res)
})
Более подробно:
const p = {
foo: 'bar',
foo2: 'bar2'
}
console.log(easyvk.static.urlencode(p))
//foo=bar&foo2=bar2
static.isObject()
Этот метод проверяет, что переменная является объектом Object.
Использовалось в процессе разработки EasyVK, не является какой-то определенной возможностью ВКонтакте API, и лишь сделано для удобства.
function log (...arguments_) { console.log(...arguments_) }
log(easyvk.static.isObject({
some: "false"
})) // true
log(easyvk.static.isObject(false)) // false
log(easyvk.static.isObject(1)) // false
log(easyvk.static.isObject(easyvk)) // false (AsyncFunction)
log(easyvk.static.isObject(easyvk.static)) // false (Function)
log(easyvk.static.isObject(new Object())) // true
static.isString()
Этот метод проверяет, что переменная является строкой String.
Использовалось в процессе разработки EasyVK, не является какой-то определенной возможностью ВКонтакте API, и лишь сделано для удобства.
function log (...arguments_) { console.log(...arguments_) }
let template_ = `${easyvk.version} - is a current version`;
log(easyvk.static.isString({
some: "false"
})) // false
log(easyvk.static.isString(false)) // false
log(easyvk.static.isString(1)) // false
log(easyvk.static.isString(easyvk)) // false
log(easyvk.static.isString(() => {})) // false
log(easyvk.static.isString(template_)) // true
log(easyvk.static.isString("")) // true
static.checkJSONErrors()
Этот метод проверяет на ошибки ответ сервера. Так как этот метод создавался в разработке EasyVK, я не предполагаю, что вы будете его использовать, можно даже сказать, что этот метод только для разработки EasyVK, всего лишь для удобства.
То есть, когда сервер отвечает нам текстом, мы проверяем ответ на определенные ошибки, на пример, вы попытались отправить сообщение пользователю через метод messages.send, но забыли добавить параметр message, тогда сервер вернет эту ошибку, и эта функция вызовет reject функцию. Кроме того, эта функция проверяет валидность JSON, сначала проверив валидность, она проверяет на наличие ошибок через метод static.checkErrors()
const easyvk = require('easyvk')
const request = require('request')
let url = 'http://api.vk.com/method/users.get/?user_ids=1&v=5.73'
request.get(url, (err, res) => {
if (err) throw err
let json = easyvk.static.checkJSONErrors(res.body, (err) => {
console.log(err)
})
if (json) {
console.log(json.response[0].id) // не выведется, произойдет ошибка
} else {
console.log("invalid json", res.body)
}
})
static.checkErrors()
Этот метод проверяет объект VKResponse на наличие серверных ошибок. То есть, когда сервер отвечает с ошибкой, этот метод дает об этом знать, что произошла определенная ошибка. Можете использовать его для разработки дополнений к EasyVK, но я хочу предупредить, что этот метод создавался только как впомогательный методы для разработки EasyVK.
const easyvk = require('easyvk')
const request = require('request')
let url = 'http://api.vk.com/method/users.get?user_ids=-1&v=5.73'
request.get(url, (err, res) => {
if (err) throw err
if (!res.body) res.body = '{}'
// Вот тут аккуратней.
// Мы делаем запрос такой, что точно уверены в нем
let vkr = JSON.parse(res.body)
let vkErr = easyvk.static.checkErrors(vkr)
if (vkErr) {
throw new Error(vkErr) // Выведится ошибка Invalid user id
} else {
console.log(vkr.response[0].id)
}
})
static.encodeHTML()
Этот метод декодирует строку с символами вроде <, > в обычную строку, понятную человеку. Этот метод не использовался при разработке EasyVK, и существует в нем лишь для удобства, но, скорее всего, я его уберу.
function log (...arguments_) { console.log(...arguments_) }
let str = "Привет, Кирилл!<br><br>"
str += "Я сегодня посмотрел твой доклад <"Экосистема процессора">.";
str += " <br><br>Ты знаешь, мне не понравилось. Пойду поем m&m's"
log(str) // Некрасиво
log(easyvk.static.encodeHTML(str)) // Красиво