Имею "узел v11.10.0" + MacOS 10.14.
К сожалению, я не могу запустить VK-io из-за следующих ошибок:
import VK from 'vk-io';
^^
SyntaxError: Unexpected identifier
...
import { VK } from 'vk-io';
^
SyntaxError: Unexpected token {
Итак, я попробовал что-то еще, но снова у меня не получилось с этим подходом:
const vk = require('vk-io');
vk.token = "asdfasdfadsf";
const collectStream = vk.collect.wall.get({ owner_id: -86529522 });
// Error:
const collectStream = vk.collect.wall.get({
^
TypeError: Cannot read property 'wall' of undefined
Что я делаю не так?
Импорт работает только с предварительной обработкой MJS, TypeScript или Babel. Здесь вам нужно использовать Common JS:
const { VK } = require('vk-io');
const vk = new VK();
vk.token = 'asdfasdfadsf';
const collectStream = vk.collect.wall.get({ owner_id: -86529522 });
негезор, спасибо! Оно работает!
Вы случайно не знаете, почему у меня такая ошибка?
vk.collectStream.on('error', console.error);
^
TypeError: Cannot read property 'on' of undefined
Я использую последнюю версию vk-io.
Может дело в том, что в начале используется объект vk?
Пример использования.
const collectStream = vk.collect.wall.get({ owner_id: -86529522 });
collectStream.on('error', console.error);
collectStream.on('data', payload => {
console.log('Data', payload.items);
});
collectStream.on('end', () => {
console.log('Data received');
});
Есть ли какой-нибудь небольшой пример того, как получать сообщения со стены группы?
Я новичок в сервисе ВКонтакте, поэтому меня это немного сбивает с толку.
Какой способ авторизации выбрать? Что такое appId и appSecret? Мне нужен доступ к группе, а не к приложению. Где я могу передать закрытый ключ моей группы?
У меня есть данные логина / пароля и приватный ключ к группе. Что я должен делать дальше?
Вы можете получать сообщения из группы с помощью метода
const group = new VK({
token: 'GROUP_TOKEN'
});
const app = new VK({
token: 'APP_TOKEN_OR_USER_TOKEN'
});
// Method
app.api.wall.get({
owner_id: -86529522 // Group ID
}); // => Promise
// Or collect all
app.collect.wall.get({
owner_id: -86529522
}); // => CollectStream
Коллекция работает с токеном пользователя или приложения. Но только если метод поддерживает.
Спасибо!
Что такое AppToken и где я могу получить UserToken? Разве это не то же самое, что и закрытый ключ группы?
Токен приложения (токен службы) . Токен пользователя доступен через автономную или прямую авторизацию. Это все токены, у которых есть права на вызов методов.
Какой токен (и метод аутентификации) мне нужен для выполнения запросов wall.get?
Теперь мой пример кода:
const { VK } = require("vk-io");
const vk = new VK({ token: "...a long group API token placed here..." });
vk.api.wall.get({ owner_id: -86529522 });
Но каждый раз получаю следующее сообщение:
Code №5 - User authorization failed: method is unavailable with group auth.
Похоже, я не могу просто сделать простой запрос wall.get :)
В документации метода указано, что он недоступен для токена группы. Нужен сервисный или пользовательский токен, об этом я уже писал выше.
Самый полезный комментарий
Импорт работает только с предварительной обработкой MJS, TypeScript или Babel. Здесь вам нужно использовать Common JS: