☰
  • Гаджеты
    • iPhone
    • Android
    • Новости
    • Обои для смартфонов
    • Программы для android
    • Обзоры о гаджетах
    • Программы
  • Компьютеры
    • Windows
    • Ubuntu
    • MS Office
    • Программы для ПК
    • Обслуживание и защита ПК
  • Интернет
    • Браузер
    • Создание сайтов
    • SEO и раскрутка
    • Социальные сети
    • Заработок
    • Сатострой
  • Игры
    • Клиентские
    • Браузерные
    • Мобильные
    • Ретро
  • Другое
    • 1С Бухгалтерия
    • Техно-статьи
    • Дайджест

Как создать приложение для контакта (ВКонтакте). Первый запрос - как получить список друзей

Привет, друзья. В этом посте я расскажу о том как отправить первый запрос серверу ВКонтакте, получить и обработать ответ от него. Запрашивать будем список друзей определённого пользователя. Список того, что нужно знать для написания приложения для контакта в этой статье. Приступим.Прежде чем начать писать код приложения, его нужно создать на vkontakte.ru, чтобы получить идентификатор приложения и секретный код приложения, без них отправка запросов серверу контакта невозможна.

Зайдите в свой аккаунт вконтакте. В самом низу страницы нажмите на ссылку «разработчикам», ну а там уже нажмите на кнопку «Создать приложение» и следуйте инструкциям, только не забудьте выбрать Flash/IFrame приложение.

Теперь займёмся написание самого приложения. Запустите Adobe Flash, я использую Flash CS5, но принципиальных отличий от CS4 нет. Создайте пустое приложение ActionScript 3.0 (File->New->ActionScript3.0->OK)

Хочу оговориться, что в этой статье код будем размещать в кадре, так как он не большой, но вообще в ActionScript 3.0 код всегда следует размещать в отдельных файлах.

И так, сейчас у нас чистый слой. Создадим на нём 2 динамических текстовых поля и кнопку. В одно текстовое поле будут выводиться id друзей а в другое их имена и фамилии, при нажатии на кнопку будет отправляться запрос. Instance Name для текстовых полей id_output и name_output соответственно и для кнопки go_button. Instance Name – это имена переменных, через которые мы будем обращаться к элементам сцены в коде.

Теперь всё готово, чтобы написать первые строки кода. Выберите первый (и единственный) кадр нашей сцены и нажмите F9, откроется редактор ActionScript.
Не забывайте, что код мы будем писать самостоятельно, поэтому убедитесь, что отключен упрощенный режим редактора. Кроме того для удобства можете скрыть левую панель с операторами, так как она нам не нужна. Редактор должен выглядеть вот так:

Теперь всё готово, чтобы написать первые строки кода. Выберите первый (и единственный) кадр нашей сцены и нажмите F9, откроется редактор ActionScript.Не забывайте, что код мы будем писать самостоятельно, поэтому убедитесь, что отключен упрощенный режим редактора. Кроме того для удобства можете скрыть левую панель с операторами, так как она нам не нужна. Редактор должен выглядеть вот так:

Сейчас мы должны сохранить наше приложение. Создайте для него отдельную папку и сохраните его туда, например D:\VKAPI\GetFriends\GetFrinds.fla

Для начала нам понадобится подключить все необходимые библиотеки. В этом приложении понадобится только библиотека MD5, зачем она нужна расскажу немного ниже. Но дело в том, что Flash не включает в себя эту библиотеку и нам придётся использовать стороннюю, не проблема, скачать её можно по этой ссылке.

Создайте в папке, куда вы сохранили приложение новую папку libs (имя можете выбрать другое) и закиньте в неё скачанный файл MD5.as.

Теперь пишем первую строчку кода:

import libs.MD5;

Таким образом мы подключили библиотеку MD5.

Далее нам нужно объявить все необходимые переменные:

var URLLoad:URLLoader = new URLLoader();   // загрузчик для загрузки id
var URLLoad_names:URLLoader = new URLLoader(); // загрузчик для загрузки имён
var XMLdata:XML; //в эту переменную будет сохраняться ответ сервера в формате XML
var v:URLVariables = new URLVariables(); //в этой переменной будут храниться данные, которые мы отправляем на сервер контакта
var API_ID:String = "********"; //id вашего приложения
var VIEWER_ID:String = "*******"; //id пользователя, который просматривает приложение. Данная переменная должна браться из переменных браузера flash_vars либо из контейнера контакта, но сейчас просто впишите в неё свой id
var API_SECRET:String = "APFFhywt9K"; //секретный код, его можно просмотреть на странице настроек приложения в контакте
var API_URL:String = "http://api.vkontakte.ru/api.php"; //адрес скрипта, которому мы будем отправлять запросы
var TEST_MODE:String = "1"; //режим тестирования, 1 – включен, 0 – отключён.

Теперь нужно назначить слушателя для нашей кнопки, чтобы реагировать на её нажатие, так и делаем:

go_button.addEventListener(MouseEvent.CLICK, ButtonGO);
Теперь напишем саму функцию ButtonGO:
function ButtonGO(e:MouseEvent):void
{
	var sig = MD5.encrypt(VIEWER_ID+"api_id="+API_ID+"method=getFriendstest_mode="+TEST_MODE+"v=2.0"+API_SECRET); //вот тут то нам и пригодилась библиотека MD5. Дело в том, что одним из требований ВКонтакте API является наличие в запросе контрольной суммы всех переменных запроса, упорядоченных в алфавитном порядке и закодированных по алгоритму MD5, это нужно для защиты запросов от перехватов и изменения.
	var URLReq:URLRequest = new URLRequest(API_URL); //создаём новый запрос и инициализируем его адресом скрипта контакта

//Далее создаём все переменные, которые нужны для запроса
	v.api_id = API_ID;
	v.v = "2.0";
	v.method = "getFriends"; //здесь указываем какой метод мы используем, так как в данный момент нам нужно получить список id всех наших друзей, то используем метод getFriends
	v.test_mode = TEST_MODE;
	v.sig = sig;

	URLReq.data = v; //Добавляем все созданные переменные запросу
	URLReq.method = URLRequestMethod.POST; //Указываем метод отправки запроса

	URLLoad.load(URLReq); //Отправляем запрос на сервер
	URLLoad.addEventListener(Event.COMPLETE,OnLoadId); //добавляем слушателя, который отслеживает ответ с сервера и когда тот приходит вызывает функцию OnLoadId
}

И так, мы отослали запрос серверу и получили от него ответ. Теперь нам нужно его обработать, чем и занимается функция OnLoadId, давайте её напишем:

function OnLoadId(e:Event):void
{
	var uids:String = ""; //в эту переменную мы сохраним все idдрузей, чтобы потом с их помощью узнать их имена и фамилии
	XMLdata = new XML(URLLoad.data); //сохраняем пришедший с сервера ответ в XML переменную
	var len:Number = XMLdata.uid.length(); //узнаём, сколько же у нас друзей, то есть сколько id пришло с сервера в его ответе
// Запускаем цикл, который перебирает все пришедшие id и выводит их в нужное текстовое поле, кроме того формируется строка из этих id разделённых запятыми
	for(var i:Number=0;i

id друзей уже выведены, теперь осталось узнать их имена и фамилии. Для этого существует метод getProfiles, с помощью которого можно узнать любую информацию о пользователе, но нас сейчас интересуют только имя и фамилия, но вы можете добавить свои поля, посмотрев их список в описании этого метода здесь
var fields:String = "first_name,last_name"; // вот именно те поля, которые мы хотим узнать
	var sig = MD5.encrypt(VIEWER_ID+"api_id="+API_ID+"fields="+fields+"method=getProfilestest_mode="+TEST_MODE+"uids="+uids+"v=2.0"+API_SECRET);
	var URLReq:URLRequest = new URLRequest(API_URL);

	v.api_id = API_ID;
	v.v = "2.0";
	v.method = "getProfiles";
	v.test_mode = TEST_MODE;
	v.sig = sig;
//Как видите ниже для метода getProfile добавились ещё 2 переменные
	v.uids = uids;
	v.fields = fields;

	URLReq.data = v;
	URLReq.method = URLRequestMethod.POST;

	URLLoad_names.load(URLReq);
	URLLoad_names.addEventListener(Event.COMPLETE,OnLoadNames);
}

Теперь осталось лишь вывести имена и фамилии на экран, чем и займётся функция OnLoadNames, в ней нет ничего сложного, она просто перебирает XML данные и выводит их в текстовое поле:

function OnLoadNames(e:Event):void
{
	XMLdata = new XML(URLLoad_names.data);
	var len:Number = XMLdata.user.length();
	for(var i:Number=0;i

Вот и всё, в итоге, мы получили наше первое приложение, которое использует ВКонтакте API:

В следующие разы мы будем оформлять все функции API в отдельную библиотеку и будем просто подключать её к нужному приложению, но для первого раза, чтобы хоть немного разобраться как всё работает, я думаю, достаточно. Обязательно читайте официальную документацию по ВКонтакте API.

В конце приведу ещё раз код приложения полностью:
import libs.MD5;

var URLLoad:URLLoader = new URLLoader();
var URLLoad_names:URLLoader = new URLLoader();
var XMLdata:XML;
var API_ID:String = "1833756";
var VIEWER_ID:String = "9060138";
var API_SECRET:String = "APFFhywt9K";
var API_URL:String = "http://api.vkontakte.ru/api.php";
var TEST_MODE:String = "1";
var v:URLVariables = new URLVariables();

URLLoad.addEventListener(Event.COMPLETE,OnLoadId);
go_button.addEventListener(MouseEvent.CLICK, ButtonGO);

function OnLoadId(e:Event):void
{
	var uids:String = "";
	XMLdata = new XML(URLLoad.data);
	trace(XMLdata);
	var len:Number = XMLdata.uid.length();
	for(var i:Number=0;i

На сегодня всё, всем хорошего настроения, удачи !

Видео, которое всегда поднимает настроение =)

[youtube]http://www.youtube.com/watch?v=S1ZZreXEqSY[/youtube]

На сайте WATCHESHOP вы можете купить часы в москве




  • Гороскоп по знакам зодиака на март 2021 года
  • Лунный посевной календарь на март 2021
  • Лунный календарь стрижек на март 2021
  • Лунный календарь маникюра на март 2021



  • Дата публикации: 2020-10-09

    Автор статьи:
    Alex Zolnov


    • Популярное
    • Новое
    На тему Android и Apple
    Dungeon Hunter 3 - игра для Android 2012
    Програма Навигатор для OS Android
    Телефоны с Android доступны для всех
    Чем открыть Fb2 на компьютере и в Андроид?
    Виджет часы для Андроид
    Max Payne mobile - Игра для Android 2012
    Как сделать зачеркнутый текст в ВК?
    Как сделать всплывающие уведомления в ВК Андроид?
    Как отключить подписку ВК на музыку Айфон?
    Как отключить безопасный поиск ВК на Айфоне?
    Как скачать музыку с ВК?
    Как скачать фото из яндекса на компьютер?
    Как увидеть историю посещения сайтов?


    © 2020 Блог о компьютерах, гаджетах и программах
    Все права защищены. При копировании материалов ссылка на сайт обязательна.
    Cайт носит информационный характер и не является публичной офертой согласно положениям статьи 437 ГК РФ.