Вывод рекламы в одобренном приложении (метод getAds)

Темы только для ознакомления. Уроки по использованию старой версии ВКонтакте API и устаревших методов.
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Вывод рекламы в одобренном приложении (метод getAds)

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

Вывод рекламы в одобренном приложении (метод getAds)

Программирование на Action Script 3, в среде Adobe Flash CS4.

Если ваше приложение не одобрено, то реклама в нём не будет отображаться. Если вы хотите просто попробовать, то можно будет использовать тестовый режим (об этом в конце урока).

Для работы с ВКонтакте API, будет использована библиотека VkApi. http://vkontakte.ru/club10009135
Эта библиотека давно не обновлялась, но я внёс в неё небольшие изменения, для работы с getAds. Измененная библиотека находиться в архиве с исходником, в конце этого урока.
Если вам интересно какие это изменения, откройте файл VkApiNode.as и поищите в нём "getAds".

1. Создаём Новый документ (Flash File), создаём новый as-файл (называем Main.as). Сохраняем и подключаем Main.as к fla файлу.
Если не знаете как подключить Main.as, то посмотрите как это было сделано в этом уроке topic9.html (Пункт 7).

2. В файле Main.as пишем код:

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

package {    import flash.net.*;    import flash.display.*;    import flash.events.*;    import flash.text.*;    import vk.VkApiNode;     public class Main extends Sprite {        private var api_id:Number=1728947;// id вашего приложения        private var api_secret:String="3wRTB1OZo9";// секретный ключ        private var api:VkApiNode;        private var viewer_id;        private var url_loader:URLLoader;        private var url_request:URLRequest;        private var query:String;        private var photo_loader:Loader;        private var responseAds:XML;         public function Main():void {            viewer_id=LoaderInfo(root.loaderInfo).parameters.viewer_id;            // создаем и выполняем запрос            api=new VkApiNode(viewer_id,api_id,api_secret);            query=api.getAds(1);// 1 - количество возвращаемых рекламных объявлений (максимум 20). Если поменяете это значение, то придётся менять и обработку полученного ответа            url_request=new URLRequest(query);            url_loader=new URLLoader  ;            url_loader.addEventListener(Event.COMPLETE,adsLoaded); // слушатель "когда запрос будет выполнен"            url_loader.load(url_request);        }         public function adsLoaded(event:Event):void {            url_loader.removeEventListener(Event.COMPLETE,adsLoaded);            responseAds=XML(url_loader.data);// создаём XML из полученных данных            if (responseAds.error_code<=0) {// если нет сообщения об ошибке                // загружаем изображение рекламы                photo_loader=new Loader  ;                photo_loader.load(new URLRequest(responseAds..photo));                photo_loader.contentLoaderInfo.addEventListener(Event.COMPLETE,photoLoaded);            } else {                trace('Ошибка ' + responseAds..error_msg);            }        }         public function photoLoaded(e:Event):void {            photo_loader.contentLoaderInfo.removeEventListener(Event.COMPLETE,photoLoaded);            // отображаем загруженное изображение            var photo:Loader=Loader(e.target.loader);            photo.x=10;            photo.y=10;            addChild(photo);             // создаем стиль для текста            var myCSS = new StyleSheet();            myCSS.setStyle("p", {color:"#000000", fontFamily:"Tahoma", fontSize:11});            myCSS.setStyle("a:link", {color:"#2B587A", fontFamily:"Tahoma", textDecoration:"none"});            myCSS.setStyle("a:hover", {color:"#2B587A", fontFamily:"Tahoma", textDecoration:"underline"});             // добавляем заголовок в виде ссылки            var ads_title_tf:TextField = new TextField();            ads_title_tf.styleSheet=myCSS;            ads_title_tf.autoSize=TextFieldAutoSize.LEFT;            ads_title_tf.selectable=false;            ads_title_tf.htmlText='<b><a href="event:' + responseAds..link + '">'+responseAds..title+'</a></b>';            ads_title_tf.x=100;            ads_title_tf.y=10;            addChild(ads_title_tf);            ads_title_tf.addEventListener(TextEvent.LINK, linkHandler);             // добавляем описание            var ads_desc_tf:TextField = new TextField();            ads_desc_tf.styleSheet=myCSS;            ads_desc_tf.autoSize=TextFieldAutoSize.LEFT;            ads_desc_tf.selectable=false;            ads_desc_tf.htmlText='<p>'+responseAds..description+'</p>';            ads_desc_tf.x=100;            ads_desc_tf.y=30;            addChild(ads_desc_tf);        }         public function linkHandler(event:TextEvent):void {            navigateToURL(new URLRequest(event.text), '_blank')        }    }}
Код достаточно прокомментирован. При наличии каких-то знаний, вы сможете его понять.
Если вам всё равно не понятен код, то вы можете спросить в этой теме, но лучше начните с изучения чего-то ещё более простого, т.к. причина непонимания кода в недостатке знаний, и даже если вам расписать каждую строку, то к вам не придёт понимание всего кода.

3. Сохраняем изменённый Main.as и экспортируем приложение (Ctrl + Enter).

4. Загружаем приложение в контакт.
Если не знаете как загрузить в контакт готовый swf, то посмотрите как это было сделано в этом уроке topic9.html (Пункт 9).

5. Проверяем настройки приложения.
Состояние: Приложение включено и видно всем.
Контейнер приложения: Без использования контейнера.

Теперь можно проверить как работает приложение.

Если ваше приложение не одобрено, то реклама не будет отображаться.
Чтобы увидеть тестовую рекламу, измените в коде строку

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

api=new VkApiNode(viewer_id,api_id,api_secret);
на

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

api=new VkApiNode(viewer_id,api_id,api_secret,true);
Создайте новый swf и загрузите его в контакт.
Протестируйте приложение.

Вы должны увидеть такое:
Изображение

Исходник приложения https://flapps.ru/example/getAds.rar
Аватара пользователя
BIOS
КИДАЛА!
Сообщения: 68
Зарегистрирован: 04 ноя 2009, 10:43

Re: Вывод рекламы в одобренном приложении (метод getAds)

Сообщение BIOS »

Отличный урок!
Аватара пользователя
psix55
Модератор
Модератор
Сообщения: 1015
Зарегистрирован: 09 дек 2009, 17:16

Re: Вывод рекламы в одобренном приложении (метод getAds)

Сообщение psix55 »

Error #2044: Unhandled IOErrorEvent:. text=Error #2035: URL Not Found.
это получается если залить приложение в контакт!
Ошибка Incorrect signature
это получается если не заливать в контакт!!!
Приложение проверенно!, секретные ключи введены правильно!
В чём может быть проблема???
Аватара пользователя
BIOS
КИДАЛА!
Сообщения: 68
Зарегистрирован: 04 ноя 2009, 10:43

Re: Вывод рекламы в одобренном приложении (метод getAds)

Сообщение BIOS »

psix55 проблема в тебе хДДД

Качай исходник, там все правильно работает!
Аватара пользователя
psix55
Модератор
Модератор
Сообщения: 1015
Зарегистрирован: 09 дек 2009, 17:16

Re: Вывод рекламы в одобренном приложении (метод getAds)

Сообщение psix55 »

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

Re: Вывод рекламы в одобренном приложении (метод getAds)

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

psix55
Опиши подробнее что ты делаешь. Или даже просто дай ссылку на своё приложение.
В "проверенных" приложениях реклама не будет отображаться. Но и такой ошибки не будет.
Аватара пользователя
psix55
Модератор
Модератор
Сообщения: 1015
Зарегистрирован: 09 дек 2009, 17:16

Re: Вывод рекламы в одобренном приложении (метод getAds)

Сообщение psix55 »

В проверенных приложениях реклама отображается!!!(проверял на AS2) :D

ссылку приложения кинул в ЛС!
Пожалуйста посмотрите приложение сегодня, т.к завтра я заменю его на настоящие приложение)))

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

Re: Вывод рекламы в одобренном приложении (метод getAds)

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

psix55 писал(а):В проверенных приложениях реклама отображается!!!(проверял на AS2)
Может быть отображается, но прибыль не идёт? В описании написано, что прибыль идёт только с одобренных, но я не проверял.
psix55 писал(а):ссылку приложения кинул в ЛС!Пожалуйста посмотрите приложение сегодня, т.к завтра я заменю его на настоящие приложение)))
Проверил. В Opera, FireFox - всё отлично работает.
Аватара пользователя
psix55
Модератор
Модератор
Сообщения: 1015
Зарегистрирован: 09 дек 2009, 17:16

Re: Вывод рекламы в одобренном приложении (метод getAds)

Сообщение psix55 »

прибыль то не идёт, но реклама показывается!!!
Проверил. В Opera, FireFox - всё отлично работает.
Вы видели саму рекламу???
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Вывод рекламы в одобренном приложении (метод getAds)

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

psix55
Да, видел.
Ответить