Создаем Iframe-приложение для Vkontakte.ru

Dik

Хозяин
Команда форума
Администратор
Репутация
500 / 882
Одно время было непонятное стремление создать приложение для контакта, но необходимость изучения flash технологий напрочь отбивало это желание. И вот Вконтакте соблаговолил простым смертным создавать IFrame приложения, то есть можно создать приложение на PHP, используя api контакта, и разместить это приложение на своем сервере, и оно будет подгружаться в контакт при помощи IFrame технологии.
Сейчас я попытаюсь объяснить основы, которых должно хватить для создания более сложных и полноценных приложений.

Первое, что надо сделать — это пройти на страницу: vkontakte.ru/apps.php?act=add
[attachment=587:1.jpg]
И начать создавать приложение, с заполнением формы, надеюсь, Вы справитесь, если не справились, то жмем крестик в правом верхнем углю экрана монитора.
Далее мы видим страницу с более тонкими настройками:
[attachment=588:2.jpg]
Жмем кнопку, которая отмечана на рисунке цифрой 1 — IFrame. В верней части появится поле номер 2, именно в него необходимо внести стартовую страницу приложения, у меня это было: "gvozd.org/index.php".
Затем переходим к пункту 3 и включаем наше приложение (выбираем из выпадающего списка). Жмем кнопку «Редактировать», отмечена цифрой 4.

В верхнем меню выбираем пунк "Платежи":
[attachment=589:3.jpg]
Жмем кнопку "Включить систему платежей"
[attachment=590:4.jpg]
Система платежей включена.

Для теста работоспособности на странице "gvozd.org/index.php" размещаем надпись "Эта страница расположена на домене gvozd.org". Открываем страницу с приложением:
[attachment=591:5.jpg]
Если видим сообщение, которое мы оставили на странице, то все отлично, все работает.
Далее следует обратить внимание, что контакт добавляет ряд переменных (в php их можно словить через массив $_GET) к загружаемой в iframe странице.

Полный запрос выглядел так:
md5("api_id=4method=secure.getAppBalancerandom=83962759timestamp=1238714241v=2.0
api_secret"),
то есть 7598d64720bb39544679f2ca256fa538
Согласно рекомендациям мануала( vkontakte.ru/pages.php?o=-1&p=Защищенное%20взаимодействие%20приложения%20с%20API ) был написан следующий код и размещен на странице которая загружалась через iframe:
Код:
<?
$api_id = 1828067;
$method = "secure.getAppBalance";
$random = rand(10000,99999);
$timestamp = time();
$v = "2.0";
$api_secret = "lVM6Z6sL0zDczCBDOdzB";
$sig=md5("api_id=".$api_id."method=".$method."random=".$random."timestamp=".$timestamp."v=".$v.$api_secret);
print file_get_contents("http://api.vkontakte.ru/api.php?api_id=".$api_id."&v=".$v."&method=".$method."&timestamp=".$timestamp."&random=".$random."&sig=".$sig);
?>
[attachment=592:6.jpg]
Баланс данного приложения равен нулю, что и не удивительно)
Затем было принято решение бросить один голос на баланс приложения, что бы протестировать окончательно:
[attachment=593:7.jpg]
Перегрузили страницу с приложением:
[attachment=594:8.jpg]
Баланс приложения обновился (100 — значит 1 голос), значит запрос прошел успешно.

Общий алгоритм работы приложения:
1) авторизация при помощи auth_key.
2) начало сессии.
3) выборка значений из базы (либо регистрация нового пользователя).
4) какие-либо действия пользователя.
5) общение с api контакта через secure методы.

Источник: devtown.ru
 
Сверху