nodejs-vksdk
Простой SDK для выполнения запросов к API социальной сети «ВКонтакте».
Установка
Просто скопируйте файл vksdk.js в свой проект и подключите.
var VK = ;
Настройка
Поддерживается два способа авторизации и отправки запросов.
- sig (через подпись, по http) (http://vk.com/developers.php?oid=-1&p=%D0%92%D0%B7%D0%B0%D0%B8%D0%BC%D0%BE%D0%B4%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D0%B5_%D1%81_API_%D0%B1%D0%B5%D0%B7_HTTPS)
- oauth, через https (http://vk.com/developers.php?oid=-1&p=%D0%92%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2_%D0%BA_API)
SDK предоставляет оба способа, можно выбрать при инициализации.
var vk = 'appID' : 2807970 'appSecret' : 'L1ZKpgQPalJdumI6vFK' 'mode' : 'oauth';
var vk = 'appID' : 2807970 'appSecret' : 'L1ZKpgQPalJdumI6vFK' 'mode' : 'sig';
При необходимости режим выполнения запросов меняется в любой момент:
vk;
или
vk;
Авторизация через sig
Специальная авторизация не требуется, достаточно appID и appSecret
Авторизация через oauth
Для выполнения запросов нужен токен.
Можно заставить SDK автоматически запросить токен. Полученный токен — это авторизация сервера приложений. С ним можно выполнять некоторые операции, не касающиеся пользовательских данных. Например, secure.getAppBalance или secure.sendNotification.
Поскольку токен генерируется не сразу, нужно подождать события.
- appServerTokenReady — событие успешно полученного токена
- appServerTokenNotReady — ошибка запроса токена
vk;vk;vk;
Можно получить токен через код, отправленный с фронт-енда. Про процесс авторизации и код написано здесь: http://vk.com/developers.php?oid=-1&p=Авторизация_сайтов В этом случае SDK возьмет код, обратится с ним к oauth И получит токен, с которым и будет выполнять запросы. Получение токена тоже занимает время, поэтому нужно подождать событий. Это токен позволяет запрашивать данные пользователей.
vk;vk;vk;
Третий способ — задать токен напрямую. Токен можно получить с фронт-енда или использовать ранее полученный токен. Здесь дожидаться событий не нужно — токен задается сразу.
vk;vk;vk;
Запросы
Запросы выполняются так:
vk;vk;
Передаем в request название метода API и параметры. По готовности результата сгенерируется событие вида done:methodName. В этом примере запрашивается getProfiles, значит событие готовности — done:getProfiles.
Бывает и так, что нужно выполнить несколько однотипных запросов. На каждый запрос можно назначить свое имя события (чтобы события не конфликтовали):
vk;vk; vk;vk;
Мы назначили два события: myEvent1 и myEvent2. С первым придут данные для пользователя 29894, со вторым — пользователя 1.
Системные события в SDK
- tokenByCodeReady — получен токен по коду
- tokenByCodeNotReady — ошибка получения токена по коду
- appServerTokenReady — получен токен сервера приложений
- appServerTokenNotReady — ошибка получения токена сервера приложений
Полный список методов
- setToken([params]) — установка токена через код, напрямую или запрос токена с сервера.
- changeMode(string) — установка режима работы SDK (oauth или sig)
- getToken() — получить текущий рабочий токен
- request(methodName, methodParams, [eventName]) — выполнить запрос к методу API, используя параметры (и, возможно, указать кастомное событие)
В SDK доступны все методы из events.EventEmitter (http://nodejs.org/api/events.html)
Поддержка
- 57uff3r@gmail.com
- http://57uff3r.ru
- http://vk.com/s7uff3r
- Дополнительно: база данных городов и стран vk.com http://citieslist.ru/