ВКонтакте API 3.0. Пример простого приложения

Только готовые уроки по использованию ВКонтакте API. Flash + PHP + API. НЕ IFrame!
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: ВКонтакте API 3.0. Пример простого приложения

Сообщение Александр »

m1cky
Если переделать код под контейнер, то будет работать.
Нужно получать данные из flashvars немного по другому и использовать событие Event.ADDED_TO_STAGE. В официальной документации и примере всё это есть. На этом форуме в уроках тоже есть.
Аватара пользователя
Cadmy
Сообщения: 35
Зарегистрирован: 29 авг 2010, 21:12

Re: ВКонтакте API 3.0. Пример простого приложения

Сообщение Cadmy »

А у меня Explorer вот, что пишет:
"Error #2044: Необработанный ioError:. text=Error #2124: Неизвестный тип загруженного файла. URL: http://vkontakte.ru/"
А Firefox просто белый экран отображает. Методы устранения ошибок, которые описаны на главной использовал.
:cry:
Аватара пользователя
Cadmy
Сообщения: 35
Зарегистрирован: 29 авг 2010, 21:12

Re: ВКонтакте API 3.0. Пример простого приложения

Сообщение Cadmy »

Md5 скачал и вставил.
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: ВКонтакте API 3.0. Пример простого приложения

Сообщение Александр »

Cadmy
Проверь правильные ли передаются параметры viewer_id, secret и sid.
Посмотри какой ответ возвращает сервер. Выводи его куда-нибудь или используй Charles.
Аватара пользователя
Cadmy
Сообщения: 35
Зарегистрирован: 29 авг 2010, 21:12

Re: ВКонтакте API 3.0. Пример простого приложения

Сообщение Cadmy »

2 Александр Спасибо, ценный совет. Итак, ответ сервера следующий:

Код: Выделить всё

<error>     <error_code>4</error_code>     <error_msg>Incorrect signature</error_msg>     <request_params list="true"> 
Остальной xml в порядке. Что может быть не так с сигнатурой?
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: ВКонтакте API 3.0. Пример простого приложения

Сообщение Александр »

Cadmy
Что значит "остальной в порядке"? Весь XML говорит о том, что сигнатура не верная. Проверь app_id, viewer_id, secret и sid.
xShinigami
Сообщения: 7
Зарегистрирован: 22 окт 2010, 10:40

Re: ВКонтакте API 3.0. Пример простого приложения

Сообщение xShinigami »

Я скачал исходник, откомпилировал и залилил в контакт. У меня только белый экран и ничего не показываеться
Аватара пользователя
Doker
Модератор
Модератор
Сообщения: 1026
Зарегистрирован: 07 май 2010, 18:53

Re: ВКонтакте API 3.0. Пример простого приложения

Сообщение Doker »

Значит чтото не правльено настроил !
xShinigami
Сообщения: 7
Зарегистрирован: 22 окт 2010, 10:40

Re: ВКонтакте API 3.0. Пример простого приложения

Сообщение xShinigami »

Код: Выделить всё

/* http://flapps.ru/forum/ - форум о создании флеш приложений на основе ВКонтакте API */package {    import flash.net.URLLoader;    import flash.net.URLRequest;    import flash.net.URLVariables;    import flash.net.URLRequestMethod;    import flash.display.*;    import flash.events.*;    import flash.text.TextField;    import fl.containers.UILoader;     public class Main extends Sprite    {        private var api_id:Number = 1990765;// ID приложения        private var url_loader:URLLoader;        private var url_request:URLRequest;        private var viewer_id;        private var secret:String;        private var sid:String;        private var api_url:String;         private var bdate_tf:TextField = new TextField();        private var name_tf:TextField = new TextField();        private var avatar:UILoader = new UILoader  ;         public function Main():void        {            api_id = LoaderInfo(root.loaderInfo).parameters.api_id;            // получаем данные из flashVars            // id просматривающего приложение            viewer_id = LoaderInfo(root.loaderInfo).parameters.viewer_id;            // secret для генерации сигнатуры            secret = LoaderInfo(root.loaderInfo).parameters.secret;            // id сессии            sid = LoaderInfo(root.loaderInfo).parameters.sid;            // адрес API-сервиса            api_url = LoaderInfo(root.loaderInfo).parameters.api_url;             // для тестирования локально, можно прописать их здесь (брать в исходном коде страницы с приложением)            /*            viewer_id = '1';            secret = 'abcd123456';            sid = 'abcd123456abcd123456abcd123456abcd123456abcd123456abcd1234';            api_url = 'http://api.vkontakte.ru/api.php';            */            // вызываем функцию получения профиля пользователя, просматривающего приложение            getProfile(viewer_id);        }         private function getProfile(uid):void        {            // параметры которые будем передавать в запросе и которые нужны для формирования сигнатуры            // параметры для формирования сигнатуры            var request_params: Object = new Object();            request_params.api_id = api_id;            request_params.method = 'getProfiles';            request_params.format = 'XML';            request_params.v = '3.0';            request_params.fields = 'bdate,photo_big';            request_params.uids = uid;             // параметры для отправки запроса            var variables:URLVariables = new URLVariables();            // часть параметров берем из request_params            for (var j:String in request_params)            {                variables[j] = request_params[j];            }            variables['sid'] = sid;// параметр sid нужно передавать в запросе, но он не используются при создании сигнатуры            variables['sig'] = generate_signature(request_params);// генерируем сигнатуру. Функция generate_signature описана ниже.             // подготавливаем запрос            url_request = new URLRequest(api_url);            // данные будем отправлять POST запросом            url_request.method = URLRequestMethod.POST;            // добавляем параметры в запрос            url_request.data = variables;            // отправляем запрос            url_loader = new URLLoader  ;            url_loader.addEventListener(Event.COMPLETE,onComplete);            url_loader.load(url_request);        }                // запрос выполнен        private function onComplete(event:Event):void        {            var response:XML = new XML(url_loader.data);             // выводим дату рождения пользователя            var bdate = response..bdate;            bdate_tf.text = bdate;            bdate_tf.x = 490;            bdate_tf.y = 380;            addChild(bdate_tf);             // выводим имя и фамилию пользователя            name_tf.text = response..first_name + ' ' + response..last_name;            name_tf.x = 410;            name_tf.y = 360;            addChild(name_tf);             // выводим аватарку пользователя            avatar.autoLoad = true;            avatar.scaleContent = false;            avatar.source = response..photo_big;            avatar.move(175,10);            addChild(avatar);        }         // функция генерации сигнатуры        private function generate_signature(request_params):String        {            var signature = '';            // сортируем параметры в алфавитном порядке            var sorted_array: Array = new Array();            for (var key in request_params)            {                sorted_array.push(key + "=" + request_params[key]);            }            sorted_array.sort();             // создаем строку параметров;            for (key in sorted_array)            {                signature +=  sorted_array[key];            }            signature = viewer_id + signature + secret;            return MD5.encrypt(signature);        }        // http://flapps.ru/forum    }}
ид приложения 1990765
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: ВКонтакте API 3.0. Пример простого приложения

Сообщение Александр »

xShinigami
Проверь что приложение включено и не используется контейнер.
Если не поможет, смотри что возвращает сервер, с помощью Charles.
Ответить