spotted v1.2.7
spotted ·
$ npm install spotted
Библиотека для быстрого и простого создания ботов для сообществ ВКонтакте.
Включает в себя сервер для обработки приходящих от ВКонтакте запросов и клиент для вызова методов API ВКонтакте.
Клиент позволяет вызывать открытые методы и методы, доступные с ключом доступа сообщества, а также загружать файлы в сообщество: обложку, документы и фотографии.
Документация
spotted()
- Returns
Application
Возвращает экземпляр класса Application
.
Application
app.run(options)
options<Object>
Параметры запуска- Returns
void
Запускает сервер для обработки входящих запросов.
Options
Свойства объекта options
и их значения по умолчанию.
{
port: 8080 // <Number> Порт
}
app.setCommunity(community)
community<Object>
Данные сообщества- Returns
void
Устанавливает данные сообщества.
Community
Свойства объекта community
.
{
accessToken, // <String> Ключ доступа сообщества
confirmationCode, // <String> Код подтверждения адреса сервера из настроек сообщества
secretKey // <String> Секретный ключ сообщества (если используется)
}
Client
При установке данных сообщества (app.setCommunity) экземпляр Client
создаётся автоматически, а после хранится в переменной app.client
.
client.call(method, params)
method<String>
Название методаparams<Object>
Параметры метода- Returns
Promise<Any>
Вызывает методы API ВКонтакте.
При этом, метод не вызывается сразу, а помещается в очередь. Методы, находящиеся в очереди, отправляются на сервер ВКонтакте «пачками» и вызываются через execute
.
client.callDirect(method, params)
method<String>
Название методаparams<Object>
Параметры метода- Returns
Promise<Any>
В отличие от client.call
вызывает методы в обход очереди.
client.upload(type, file[, params, afterUploadParams])
type<String>
Тип загрузкиfile<Any>
Файл к загрузкеparams<Object>
Параметры запроса на получение URL для загрузки. ПодробнееafterUploadParams<Object>
Параметры запроса на сохранение загруженного файла. Подробнее- Returns
Promise<Any>
Выполняет загрузку файлов во ВКонтакте.
Типы загрузок
cover
Обложка сообществаdocument
Документ в личное сообщениеdocument_wall
Документ на стенуphoto
Фотография в личное сообщение
File
Файл должен представлять собой FS Stream либо объект, который содержит следующие свойства:
Свойство | Тип | |
---|---|---|
content | Buffer | Содержимое файла |
name | String | Имя файла |
Как загружать граффити и аудио-сообщения?
Для того, чтобы загрузить граффити или аудио-сообщение, нужно указать document
как тип загрузки, а в параметрах запроса params
указать тип загружаемого документа: для граффити — это graffiti
, для аудио-сообщения — audio_message
.
Message
Для событий message_new
и message_reply
возвращается экземпляр класса Message
, который имеет расширенный список методов.
message.delete(params)
params<Number/Object>
Параметры запроса. По умолчанию равен ID текущего сообщения- Returns
Promise<Any>
Позволяет быстро удалить сообщение.
params
может быть как ID сообщения, которое нужно удалить, так и объектом, содержащим параметры для метода messages.delete
.
message.isAudio()
- Returns
Boolean
Вернёт true
, если первое прикрепление к сообщению является аудиозаписью.
message.isAudioMessage()
- Returns
Boolean
Вернёт true
, если было получено аудио-сообщение.
message.isGraffiti()
- Returns
Boolean
Вернёт true
, если было получено сообщение с граффити.
message.isPhoto()
- Returns
Boolean
Вернёт true
, если первое прикрепление к сообщению является фотографией.
message.isSticker()
- Returns
Boolean
Вернёт true
, если был получен стикер.
message.isText()
- Returns
Boolean
Вернёт true
, если было получено сообщение без прикреплений.
message.reply(answer)
answer<String/Object>
Сообщение-ответ- Returns
Promise<Any>
Позволяет быстро отправить ответ на сообщение в текущий диалог.
answer
может быть как строкой-ответом, так и объектом, содержащим параметры для метода messages.send
.
message.replyWithPhoto(photo)
photo<String/Stream/Object>
Фотография- Returns
Promise<Any>
Позволяет быстро отправить фотографию в текущий диалог.
photo
принимается в таком же формате, как и второй аргумент (file
) для метода client.upload
.
Однако, можно просто передать URL фотографии, которую нужно загрузить, и всё будет работать.
message.restore(messageId)
messageId<Number>
ID сообщения. По умолчанию ID текущего сообщения- Returns
Promise<Any>
Восстанавливает сообщение по его ID.
message.send(params)
params<Object>
Параметры для методаmessages.send
- Returns
Promise<Any>
Отправляет сообщение.
message.setTyping(userId)
userId<Number>
ID пользователя (= ID диалога). По умолчанию ID автора текущего сообщения- Returns
Promise<Any>
Изменяет статус набора текста сообществом в диалоге.