Исходник приложения для повышения рейтинга

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

Исходник приложения для повышения рейтинга

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

Исходник приложения для повышения рейтинга
Adobe Flash CS5, ActionScript 3.0, PHP

Изображение

Для работы приложения требуется хостинг с поддержкой curl. Скорее всего бесплатный хостинг не подойдёт.

Main.as

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

/*     https://flapps.ru/forum/ - форум о создании приложений */package {    import flash.net.*;    import flash.display.*;    import flash.events.*;    import flash.text.*;    import flash.ui.*;    import vk.*;     public class Main extends Sprite {        private var api_id:Number=1727522;// id вашего приложения        private var api_secret:String="mgqE3mX4rb";// секретный ключ        private var viewer_id;        private var externalXML:XML;        private var loader:URLLoader=new URLLoader  ;        private var photoLoader:Loader=new Loader  ;        private var api:VkApiNode;        private var url_loader:URLLoader;        private var url_request:URLRequest;        private var query:String;        private var uids:Array;        private var fields:Array;         public function Main():void {            uid_to_tf.borderColor = 0xC0CAD5;            rate_tf.borderColor = 0xC0CAD5;            message_tf.borderColor = 0xC0CAD5;                        var len = message_tf.text.length;            if(message_tf.text.charAt(len - 1) == '\r')            message_tf.replaceText(len - 1, len, '');             var cm = new ContextMenu();            cm.hideBuiltInItems();            var p1:ContextMenuItem=new ContextMenuItem('Повышение рейтинга');            var p2:ContextMenuItem=new ContextMenuItem('© id');            cm.customItems.push(p1,p2);            this.contextMenu=cm;                        VK.init(this, "http://api.vkontakte.ru/swf/vk_gui-0.3.swf");        }         public function onVKLoaded():void {            var btn1:* =VK.createSquareButton("Повысить",255,45);            addChild(btn1);             var btn2:* =VK.createSquareButton("Проверить",75,45);            addChild(btn2);             var params:Object=LoaderInfo(root.loaderInfo).parameters;            viewer_id=params['viewer_id'];                        uid_to_tf.restrict = "0-9";            rate_tf.restrict = "0-9";            uid_to_tf.text = viewer_id;                        fields=['first_name,last_name,photo_big'];            uids=[uid_to_tf.text];            getProfiles(uids,fields);                        btn1.addEventListener(MouseEvent.CLICK,btn1Click);            btn2.addEventListener(MouseEvent.CLICK,btn2Click);             rate_tf.addEventListener(Event.CHANGE, onChange);        }         public function onChange(e:Event):void {            if (int(rate_tf.text)>0) {                if (int(rate_tf.text)<100) {                    votes_tf.text =  ''+(int(rate_tf.text) * 6*100)/1000;                } else {                    votes_tf.text =  ''+(int(rate_tf.text) * 5*100)/1000;                }            }            else {                votes_tf.text =  'Ошибка';            }        }         public function btn1Click(e:MouseEvent):void {            result_flapps_tf.text='Ждите...';            var params:Object=LoaderInfo(root.loaderInfo).parameters;            var loader:URLLoader=new URLLoader  ;            var request:URLRequest=new URLRequest("https://flapps.ru/addrating.php");// адрес вашего скрипта            request.method=URLRequestMethod.POST;             var vars:URLVariables=new URLVariables  ;            vars['auth_key']=params['auth_key'];            vars['viewer_id']=params['viewer_id'];            vars['uid']=uid_to_tf.text;            vars['rate']=rate_tf.text;            vars['message']=message_tf.text;              request.data=vars;            loader.addEventListener(HTTPStatusEvent.HTTP_STATUS,onError);            loader.addEventListener(Event.COMPLETE,onComplete);            loader.load(request);        }         private function onComplete(event:Event):void {            var loader:URLLoader=event.target as URLLoader;            if (loader!=null) {                result_flapps_tf.text=loader.data;            } else {                result_flapps_tf.text='Ошибка!';            }        }         private function onError(event:Event):void {            result_flapps_tf.text='Ошибка! Попробуйте позже.';        }         public function btn2Click(e:MouseEvent):void {            fields=['first_name,last_name,photo_big'];            uids=[uid_to_tf.text];            getProfiles(uids,fields);        }         public function getProfiles(uid:Array,fields:Array):void {            if (fields.length==0) {                fields=null;            }            api=new VkApiNode(viewer_id,api_id,api_secret);            query=api.getProfiles(uid,fields);            url_request=new URLRequest(query);            url_loader=new URLLoader  ;            url_loader.addEventListener(Event.COMPLETE,onProfileLoad);            url_loader.load(url_request);        }         private function onProfileLoad(e:Event):void {            if (url_loader!=null) {                externalXML=new XML(url_loader.data);                user_name_tf.text=externalXML..first_name+' '+externalXML..last_name;                var photo=externalXML..photo_big;                url_request=new URLRequest(photo);                photoLoader.load(url_request);                photoLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,onPhotoLoaded);            } else {                trace("Error!");            }        }         private function onPhotoLoaded(e:Event):void {            photoLoader.x=340;            photoLoader.y=37;            addChild(photoLoader);        }    }}

addrating.php

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

<?/*     https://flapps.ru/forum/ - форум о создании приложений */ require('VkApi.class.php'); $app_id = '1727522';            // id приложения$api_secret = 'qwertyuiopasdfghjklzxcvbnm'; // Защищенный ключ с вкладки "Платежи" function get_url($query) {    $ch = curl_init();    curl_setopt($ch, CURLOPT_URL, $query);    curl_setopt($ch, CURLOPT_HEADER, 0);    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    curl_setopt($ch, CURLOPT_TIMEOUT, 10);    return curl_exec($ch);    curl_close($ch);} $auth_key  = $_POST['auth_key'];  // auth_key из FlashVars приложения$viewer_id = $_POST['viewer_id']; // id просматривающего приложение // Рассчитывается ключ авторизации$real_key = md5($app_id."_".$viewer_id."_".$api_secret); if ($auth_key == $real_key){$uid = $_POST['uid'];$rate = $_POST['rate'];// снимаем со счета пользователя голосаif ($rate<100) {    $votes = $rate*60; }else {    $votes = $rate*50; } $api = new VkApiNode($app_id, $api_secret);$query = $api->withdrawVotes($viewer_id, $votes);   $result = new SimpleXMLElement(get_url($query));if ($result->transferred>0) {// повышаем рейтинг$message = $_POST['message'];$query = $api->addRating($uid, $rate, $message);    $result = new SimpleXMLElement(get_url($query)); if ($result->rating_added>0)    echo 'Рейтинг повышен!';else {    switch($result->error_code)    {    case 2:      echo "Приложение выключено!";    break;    case 113:      echo "Неверный id пользователя";    break;    case 147:      echo "На балансе приложения недостаточно голосов!";    break;    default:             echo "Произошла ошибка!";    } }}else {    switch($result->error_code)    {    case 2:      echo "Приложение выключено!";    break;    case 113:      echo "Неверный id пользователя";    break;    case 151:      echo "Неверное количество голосов!";    break;    case 502:      echo "На балансе недостаточно голосов!";    break;    default:             echo "Произошла ошибка!";    } }// flapps.ru}else     echo 'error';?>
Все необходимые классы и другие файлы находятся в архиве с исходником.

Исходник https://flapps.ru/example/addrating.rar


Установка приложения

Серверная часть
1. В addrating.php изменить id приложения и защищенный ключ.
2. Загрузить файлы из папки server в любой каталог на сервере. Файл crossdomain.xml загрузить в корневой каталог.

Приложение
1. В Main.as изменить api_id, api_secret и https://flapps.ru/addrating.php на свои данные.
2. При необходимости, изменить название приложения "Повышение рейтинга" и id на свои данные.
3. Создать swf файл и загрузить его в контакт.
4. Включить приложение, если оно ещё не включено. Редактирование -> Состояние: Приложение включено и видно всем.
5. Всё готово!
Аватара пользователя
BORA
Сообщения: 171
Зарегистрирован: 21 дек 2010, 20:05

Re: Исходник приложения для повышения рейтинга

Сообщение BORA »

блин , жалко что я ламер и не понимаю как импортировать папки =(
mixakma
Сообщения: 8
Зарегистрирован: 07 янв 2011, 00:53

Re: Исходник приложения для повышения рейтинга

Сообщение mixakma »

я не могу открыть addrating.fla в flash CS4
пишет "unexpected format" в чём может быть проблема?
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Исходник приложения для повышения рейтинга

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

mixakma
Нужен CS5.

Пересохранил для CS4.
mixakma
Сообщения: 8
Зарегистрирован: 07 янв 2011, 00:53

Re: Исходник приложения для повышения рейтинга

Сообщение mixakma »

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

Re: Исходник приложения для повышения рейтинга

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

mixakma
addrating.fla
Перекачай исходник и попробуй ещё раз.
mixakma
Сообщения: 8
Зарегистрирован: 07 янв 2011, 00:53

Re: Исходник приложения для повышения рейтинга

Сообщение mixakma »

Благодарю, всё работает)
Ho4Hou
Сообщения: 10
Зарегистрирован: 09 янв 2011, 06:16

Re: Исходник приложения для повышения рейтинга

Сообщение Ho4Hou »

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

Re: Исходник приложения для повышения рейтинга

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

Ho4Hou
Нужно изучить программирование в Adobe Flash. Вот здесь http://flapps.ru/forum/topic3.html в пункте 7 написано как создать swf.
Ответить