Через URL в приложение передаются следующие параметры:
- appId - идентификатор приложения
- apiUrl - URL нашего API
- userId - идентификатор пользователя, запустившего приложение
- authKey - ключ аутентификации. Проверяйте его на своём сервере перед снятием денег
с кошелька пользователя в приложении. Ключ генерируется как MD5 хэш строки, содержащей
конкатенацию значений параметров: userId, appId, secretKey (secretKey - секретный
ключ приложения).
Например для userId = 555, appId = 324, secretKey = klyuch
authKey = md5('555324klyuch')
- userSig - подпись, для аутентификации пользователя
Использование JavaScript-посредника
Необходимо подключить файл xfr.js на вашей странице:
<script type="text/javascript" src="http://vkrugudruzei.ru/x/content/jscript/trunk/jsapi/xfr.js"></script>
В результате подключения xfr.js, создаётся глобальный объект vkdr, c помощью
которого вы можете:
- Открывать окна вКругуДрузей
- Вызывать сервисные функции
- Получать уведомления о событиях
- Осуществлять запросы к вКругуДрузей API
Открытие окон
Производится методом vkdr.app(name, params, callback)
В callback придет объект с результатом выполнения
function(data){
data.result == "complete"; // Успешное выполнение
data.result == "cancel"; // Отмена действия пользователем
data.result == "error"; // Ошибка при попытке отображения окна
data.message; // Сообщение с ошибкой
}
(!) Названия методов не зависят от регистра.
Название метода |
Описание |
showInstallBox |
Открывает окно с предложением установить приложение.
vkdr.app("showInstallBox", {}, function(data){
data.result == "complete"; // Установка приложения
});
|
showSettingsBox |
Открывает окно с пользовательскими настройками приложения.
settings – битовая маска запрашиваемых настроек
vkdr.app("showSettingsBox", { settings: 1 }, function(data){
data.result == "complete"; // Сохранение настроек
});
|
showInviteBox |
Открывает окно для приглашения друзей пользователя в приложение.
vkdr.app("showInviteBox");
|
showPaymentBox |
Открывает окно для ввода монет на счет пользователя в приложении. Для использования
необходимо "Включить платежи" на странице редактирования приложения.
coins - запрашиваемое количество монет
vkdr.app("showPaymentBox", { coins: 13 }, function(data){
data.result == "complete"; // Оплата прошла
});
|
showShareFriendsBox |
Открывает окно для подтверждения пользователем публикации записи на странице событий.
message – сooбщение
imageName - имя картинки, загруженной в кабинете разработчика
vkdr.app("showShareFriendsBox", {
message: "hello, world!",
imageName: "image.png"
}, function(data){
data.result == "complete"; // Запись опубликована
});
|
showWallPostBox |
Открывает окно для подтверждения пользователем публикации записи в гостевой книге.
userId – идентификатор пользователя, которому происходит публикация записи
message - сooбщение
imageName - имя картинки, загруженной в кабинете разработчика
vkdr.app("showWallPostBox", {
userId: 4351810,
message: "hello, world!",
imageName: "image.png"
}, function(data){
data.result == "complete"; // Запись опубликована
});
|
Вызов сервисных функций
Производится методом vkdr.app(name, params, callback)
(!) Названия методов не зависят от регистра.
Название |
Описание |
reload |
Перезагружает приложение.
|
resize |
Изменяет размер приложения.
width - ширина приложения
height - высота приложения
vkdr.app("resize", {
width: 1152,
height: 864
}, function(data){
data.width <= 1152; // Ширина и высота
data.height <= 864; // полученные после изменения размеров
data.maxWidth; // Ширина и высота
data.maxHeight; // доступный максимум
});
|
fullscreen |
Открывает приложение во весь экран.
vkdr.app("fullscreen", {}, function(data){
data.width <= 1152; // Ширина и высота
data.height <= 864; // полученные после изменения размеров
data.maxWidth; // Ширина и высота
data.maxHeight; // доступный максимум
});
|
setTitle |
Устанавливает новый заголовок вкладки с приложением.
title - новый заголовок окна
vkdr.app("setTitle", { title: "hello, world!" });
|
Получение уведомлений о событиях
Для подписки на события используйте функцию vkdr.addEvent(name, fn), где
name - название события, fn - функция обработчик. При возникновении события в функцию-обработчик
будет передан объект, содержащий сопутсвующую информацию.
Для удаления обработчика используйте функцию vkdr.removeEvent(name [, fn])
Для генерации события используйте функцию vkdr.fireEvent(name)
(!) Названия событий не зависят от регистра.
Название |
Описание |
ApplicationAdd |
Событие происходит, когда пользователь устанавливает себе приложение.
vkdr.addEvent("applicationAdd", function(){
// do smth
});
|
SettingsChange |
Событие происходит, когда пользователь изменяет настройки приложения.
settings - битовая маска настроек
vkdr.addEvent("settingsChange", function(data){
data.settings;
});
|
BalanceChange
|
Событие происходит, когда пользователь пополняет или снимает монеты со своего баланса в приложении.
balance - текущий баланс пользователя в приложении. Этот параметр можно использовать только для вывода пользователю.
Достоверность баланса всегда нужно проверять с помощью безопасного серверного метода.
vkdr.addEvent("balanceChange", function(data){
data.balance;
});
|
AppStateChange
|
Событие происходит при изменении состояния/свойств приложения
size - текущие размеры окна
maxSize - максимально доступные размеры окна
background - определяет, находится ли приложение на заднем плане
vkdr.addEvent("appStateChange", function(data){
data.size.width;
data.size.height;
if(data.background == false)
// приложение видно пользователю
else
// например, открыто окно добавления записи в гостевую
});
// В данном примере событие сработает,
// только когда изменится свойсво background
// остальные свойства будут также доступны
vkdr.addEvent("appstateChange:background", function(data){
data.background == true;
});
// Cработает, только когда изменится размер окна браузера
vkdr.addEvent("appstateChange:maxSize", function(data){
data.maxSize;
});
|
WallPostSave
|
Событие происходит, когда пользователь подтверждает публикацию записи в гостевую книгу.
vkdr.addEvent("wallPostSave", function(){
// do smth
});
|
WallPostCancel |
Событие происходит, когда пользователь отменяет публикацию записи в гостевую книгу.
vkdr.addEvent("wallPostCancel", function(){
// do smth
});
|
ShareFriendsSave |
Событие происходит, когда пользователь подтверждает публикацию записи на страницу событий.
vkdr.addEvent("shareFriendsSave", function(){
// do smth
});
|
ShareFriendsCancel |
Событие происходит, когда пользователь отменяет публикацию записи на страницу событий.
vkdr.addEvent("shareFriendsCancel", function(){
// do smth
});
|
WindowBlur |
Событие происходит, когда окно браузера с приложением теряет фокус.
vkdr.addEvent("windowBlur", function(){
// do smth
});
|
WindowFocus |
Событие происходит, когда окно браузера с приложением получает фокус.
vkdr.addEvent("windowFocus", function(){
// do smth
});
|
Обращение к API вКругуДрузей
Для обращения к методам API вКругуДрузей используйте функцию vkdr.api(name, {params},
fn), где
name - название команды API,
params - объект, содержащий параметры команды API,
fn - функция, вызываемая после завершения запроса, в неё передаётся параметр - raw.
В случае успеха, raw содержит результат выполнения команды, в случае неудачи - информацию
об ошибке.
Для пакетного выполнения методов API (за один http запрос) используйте объект-очередь:
var queue = new vkdr.queue
Методы объекта-очереди:
queue.command(name, {params}, fn)- добавляет команду в пакет, для выполнения
queue.run()- выполнет команды пакета
queue.clear()- удаляет все команды из пакета
Пример приложения:
Тестовое приложение (iframe)
Через flashVars в приложение передаются следующие параметры:
- app_id - идентификатор приложения
- api_url - URL нашего API
- swf_url - URL главного SWF файла приложения
- user_id - идентификатор пользователя, запустившего приложение
- invite_id - идентификатор пригласившего, если есть
- auth_key - ключ аутентификации. Проверяйте его на своём сервере перед снятием денег
с кошелька пользователя в приложении. Ключ генерируется как MD5 хэш строки, содержащей
конкатенацию значений параметров: userId, appId, secretKey (secretKey - секретный
ключ приложения).
Например для userId = 555, appId = 324, secretKey = klyuch
authKey = md5('555324klyuch')
- settings - битовая маска настроек пользователя в приложении.
- остальные параметры использутся для внутренних нужд
- userSig - подпись, для аутентификации пользователя
Внимание!Названия дополнительных SWF файлов при загрузке на наши сервера
сохраняются. Все файлы приложения хранятся в одной директории, определить которую
можно из URL главного SWF файла приложения, переданного во flashVars (swf_url).
Директория расположения вашего приложения МОЖЕТ ИЗМЕНЯТЬСЯ.
Для интеграции Flash приложения c вКругуДрузей используйте Flash-посредник на основе
LocalConnection.
Скачать Flash-посредник
Использование Flash-посредника
Для начала работы с Flash-посредником подключите к Вашему проекту класс ru.vkrugudruzei.VKDConnection,
доступный в архиве VKDConnection.zip, и создайте экземпляр этого класса. Единственным
параметром его конструктора является объект flashVars.
Пример кода инициализации приложения
var flashVars: Object = stage.loaderInfo.parameters as Object;
var vkdConnection : VKDConnection = new VKDConnection(flashVars);
Все дальнейшие действия будут выполняться с объектом vkdConnectionc помощью
которого вы можете:
- Открывать окна вКругуДрузей
- Вызывать сервисные функции
- Получать уведомления о событиях
- Осуществлять запросы к вКругуДрузей API
Открытие окон
Используйте функцию - vkdConnection.callMethod(methodName: String, params : Object)
, где methodName - указывает необходимое окно, params - набор параметров
Название метода |
Параметры |
Описание |
showInstallBox |
– |
Открывает окно с предложением установить приложение. |
showSettingsBox |
settings : uint – битовая маска запрашиваемых настроек |
Открывает окно с пользовательскими настройками приложения. |
showInviteBox |
- |
Открывает окно для приглашения друзей пользователя в приложение. |
showPaymentBox |
coins : uint - запрашиваемое количество монет |
Открывает окно для ввода монет на счет пользователя в приложении. Для использования необходимо "Включить платежи" на странице редактирования приложения. |
showShareFriendsBox |
message : String – сooбщение;
imageName : String - имя картинки, загруженной в кабинете разработчика; |
Открывает окно для подтверждения пользователем публикации записи на странице событий. |
showWallPostBox |
userId : uint – id пользователя к которому происходит публикация записи;
message : String – сooбщение;
imageName : String - имя картинки, загруженной в кабинете разработчика |
Открывает окно для подтверждения пользователем публикации записи в гостевой книге. |
Вызов Сервисных функций
Используйте функцию - vkdConnection.callMethod(methodName: String, params : Object)
, где method - указывает сервисную функцию, params - набор параметров
Название |
Параметры |
Результат (iframe) |
Описание |
reloadApp |
– |
– |
Перезагружает приложение. |
resizeWindow |
width : uint - ширина приложения
height : uint - высота приложения |
{
max: {width, height},
current: {width, height}
} |
Изменяет размер приложения. |
fullScreen |
- |
- |
Открывает приложение во весь экран. Актуально только для iFrame. |
getScroll |
- |
- |
Вызывает событие onScroll с текущими координатами приложения в окне. Актуально только для Flash. |
scrollWindow |
x: int
y: int |
- |
Задаёт координаты приложения в окне. Актуально только для Flash. |
setTitle |
title : String - новый заголовок окна |
- |
Устанавливает новый заголовок вкладки с приложением. |
Получение уведомлений о событиях
Для подписки на события используйте функцию vkdConnection.addEventListener(type :
String, listener : Function), где name - название события, fn - функция
обработчик. При возникновении события в функцию-обработчик будет передан объект,
содержащий сопутсвующую информацию.
Название
|
Сопутствующая информация
|
Описание
|
onApplicationAdded
|
–
|
Событие происходит, когда пользователь устанавливает себе приложение.
|
onSettingsChanged
|
settings : uint - битовую маска заданных настроек
|
Событие происходит, когда пользователь изменяет настройки приложения.
|
onBalanceChanged
|
balance : uint - текущий баланс пользователя в приложении.
Этот параметр можно использовать только для вывода пользователю.
Достоверность баланса всегда нужно проверять с помощью безопасного серверного метода.
|
Событие происходит, когда пользователь пополняет или снимает монеты со своего баланса в приложении.
|
onWallPostSave
|
-
|
Событие происходит, когда пользователь подтверждает публикацию записи в гостевую книгу.
|
onWallPostCancel
|
-
|
Событие происходит, когда пользователь отменяет публикацию записи в гостевую книгу.
|
onShareFriendsSave
|
-
|
Событие происходит, когда пользователь подтверждает публикацию записи на страницу событий.
|
onShareFriendsCancel
|
-
|
Событие происходит, когда пользователь отменяет публикацию записи на страницу событий.
|
onWindowBlur
|
–
|
Событие происходит, когда окно с приложением теряет фокус.
Например, когда пользователь открывает окно с настройками приложения.
|
onWindowFocus
|
–
|
Событие происходит, когда окно с приложением получает фокус.
Например, когда пользователь закрывает окно с настройками приложения.
|
onScroll
|
x : int
y : int
browser : Boolean - true, если событие сгенерировано браузером.
Например, при вызове getScroll, browser = false, т.к. событие генерируется приложением.
|
Событие происходит при изменении координат приложения в окне. Актуално только для Flash. |
Пример подписки и обработки события
vkdConnection.addEventListener(SettingsEvent.SETTINGS_CHANGED, onSettingsChanged);
//...
function onSettingsChanged(e: SettingsEvent): void {
var settings: uint = e.settings;
// do something
}
Обращение к API вКругуДрузей
Для обращения к методам API вКругуДрузей необходимо использовать функцию vkdConnection.api(methodName:
String, params: Object, onComplete: Function=null, onError: Function=null)
, где
methodName - название команды API,
params - объект, содержащий параметры команды API,
onComplete - функция, вызываемая при удачном завершении запроса, должна принимать
параметр data : Object, содержащий результат выполнения команды,
onError - функция, вызываемая при неудачном завершении запроса, должна принимать
параметр data : Object, содержащий информацию об ошибке
Пример приложения:
Тестовое приложение (flash) |
Исходники