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

Темы только для ознакомления. Уроки по использованию старой версии ВКонтакте API и устаревших методов.

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

Сообщение Александр » 31 дек 2010, 16:10

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

Изображение

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

Main.as
  1. /*
  2.  
  3.     https://flapps.ru/forum/ - форум о создании приложений
  4.  
  5. */
  6. package {
  7.     import flash.net.*;
  8.     import flash.display.*;
  9.     import flash.events.*;
  10.     import flash.text.*;
  11.     import flash.ui.*;
  12.     import vk.*;
  13.  
  14.     public class Main extends Sprite {
  15.         private var api_id:Number=1727522;// id вашего приложения
  16.         private var api_secret:String="mgqE3mX4rb";// секретный ключ
  17.         private var viewer_id;
  18.         private var externalXML:XML;
  19.         private var loader:URLLoader=new URLLoader  ;
  20.         private var photoLoader:Loader=new Loader  ;
  21.         private var api:VkApiNode;
  22.         private var url_loader:URLLoader;
  23.         private var url_request:URLRequest;
  24.         private var query:String;
  25.         private var uids:Array;
  26.         private var fields:Array;
  27.  
  28.         public function Main():void {
  29.             uid_to_tf.borderColor = 0xC0CAD5;
  30.             rate_tf.borderColor = 0xC0CAD5;
  31.             message_tf.borderColor = 0xC0CAD5;
  32.            
  33.             var len = message_tf.text.length;
  34.             if(message_tf.text.charAt(len - 1) == '\r')
  35.             message_tf.replaceText(len - 1, len, '');
  36.  
  37.             var cm = new ContextMenu();
  38.             cm.hideBuiltInItems();
  39.             var p1:ContextMenuItem=new ContextMenuItem('Повышение рейтинга');
  40.             var p2:ContextMenuItem=new ContextMenuItem('© id');
  41.             cm.customItems.push(p1,p2);
  42.             this.contextMenu=cm;
  43.            
  44.             VK.init(this, "http://api.vkontakte.ru/swf/vk_gui-0.3.swf");
  45.         }
  46.  
  47.         public function onVKLoaded():void {
  48.             var btn1:* =VK.createSquareButton("Повысить",255,45);
  49.             addChild(btn1);
  50.  
  51.             var btn2:* =VK.createSquareButton("Проверить",75,45);
  52.             addChild(btn2);
  53.  
  54.             var params:Object=LoaderInfo(root.loaderInfo).parameters;
  55.             viewer_id=params['viewer_id'];
  56.            
  57.             uid_to_tf.restrict = "0-9";
  58.             rate_tf.restrict = "0-9";
  59.             uid_to_tf.text = viewer_id;
  60.            
  61.             fields=['first_name,last_name,photo_big'];
  62.             uids=[uid_to_tf.text];
  63.             getProfiles(uids,fields);
  64.            
  65.             btn1.addEventListener(MouseEvent.CLICK,btn1Click);
  66.             btn2.addEventListener(MouseEvent.CLICK,btn2Click);
  67.  
  68.             rate_tf.addEventListener(Event.CHANGE, onChange);
  69.         }
  70.  
  71.         public function onChange(e:Event):void {
  72.             if (int(rate_tf.text)>0) {
  73.                 if (int(rate_tf.text)<100) {
  74.                     votes_tf.text =  ''+(int(rate_tf.text) * 6*100)/1000;
  75.                 } else {
  76.                     votes_tf.text =  ''+(int(rate_tf.text) * 5*100)/1000;
  77.                 }
  78.             }
  79.             else {
  80.                 votes_tf.text =  'Ошибка';
  81.             }
  82.         }
  83.  
  84.         public function btn1Click(e:MouseEvent):void {
  85.             result_flapps_tf.text='Ждите...';
  86.             var params:Object=LoaderInfo(root.loaderInfo).parameters;
  87.             var loader:URLLoader=new URLLoader  ;
  88.             var request:URLRequest=new URLRequest("https://flapps.ru/addrating.php");// адрес вашего скрипта
  89.             request.method=URLRequestMethod.POST;
  90.  
  91.             var vars:URLVariables=new URLVariables  ;
  92.             vars['auth_key']=params['auth_key'];
  93.             vars['viewer_id']=params['viewer_id'];
  94.             vars['uid']=uid_to_tf.text;
  95.             vars['rate']=rate_tf.text;
  96.             vars['message']=message_tf.text;
  97.  
  98.  
  99.             request.data=vars;
  100.             loader.addEventListener(HTTPStatusEvent.HTTP_STATUS,onError);
  101.             loader.addEventListener(Event.COMPLETE,onComplete);
  102.             loader.load(request);
  103.         }
  104.  
  105.         private function onComplete(event:Event):void {
  106.             var loader:URLLoader=event.target as URLLoader;
  107.             if (loader!=null) {
  108.                 result_flapps_tf.text=loader.data;
  109.             } else {
  110.                 result_flapps_tf.text='Ошибка!';
  111.             }
  112.         }
  113.  
  114.         private function onError(event:Event):void {
  115.             result_flapps_tf.text='Ошибка! Попробуйте позже.';
  116.         }
  117.  
  118.         public function btn2Click(e:MouseEvent):void {
  119.             fields=['first_name,last_name,photo_big'];
  120.             uids=[uid_to_tf.text];
  121.             getProfiles(uids,fields);
  122.         }
  123.  
  124.         public function getProfiles(uid:Array,fields:Array):void {
  125.             if (fields.length==0) {
  126.                 fields=null;
  127.             }
  128.             api=new VkApiNode(viewer_id,api_id,api_secret);
  129.             query=api.getProfiles(uid,fields);
  130.             url_request=new URLRequest(query);
  131.             url_loader=new URLLoader  ;
  132.             url_loader.addEventListener(Event.COMPLETE,onProfileLoad);
  133.             url_loader.load(url_request);
  134.         }
  135.  
  136.         private function onProfileLoad(e:Event):void {
  137.             if (url_loader!=null) {
  138.                 externalXML=new XML(url_loader.data);
  139.                 user_name_tf.text=externalXML..first_name+' '+externalXML..last_name;
  140.                 var photo=externalXML..photo_big;
  141.                 url_request=new URLRequest(photo);
  142.                 photoLoader.load(url_request);
  143.                 photoLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,onPhotoLoaded);
  144.             } else {
  145.                 trace("Error!");
  146.             }
  147.         }
  148.  
  149.         private function onPhotoLoaded(e:Event):void {
  150.             photoLoader.x=340;
  151.             photoLoader.y=37;
  152.             addChild(photoLoader);
  153.         }
  154.     }
  155. }



addrating.php
  1. <?
  2. /*
  3.  
  4.     https://flapps.ru/forum/ - форум о создании приложений
  5.  
  6. */
  7.  
  8. require('VkApi.class.php');
  9.  
  10. $app_id = '1727522';            // id приложения
  11. $api_secret = 'qwertyuiopasdfghjklzxcvbnm'// Защищенный ключ с вкладки "Платежи"
  12.  
  13. function get_url($query) {
  14.     $ch = curl_init();
  15.     curl_setopt($ch, CURLOPT_URL, $query);
  16.     curl_setopt($ch, CURLOPT_HEADER, 0);
  17.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  18.     curl_setopt($ch, CURLOPT_TIMEOUT, 10);
  19.     return curl_exec($ch);
  20.     curl_close($ch);
  21. }
  22.  
  23. $auth_key  = $_POST['auth_key'];  // auth_key из FlashVars приложения
  24. $viewer_id = $_POST['viewer_id']; // id просматривающего приложение
  25.  
  26. // Рассчитывается ключ авторизации
  27. $real_key = md5($app_id."_".$viewer_id."_".$api_secret);
  28.  
  29. if ($auth_key == $real_key){
  30. $uid = $_POST['uid'];
  31. $rate = $_POST['rate'];
  32. // снимаем со счета пользователя голоса
  33. if ($rate<100) {
  34.     $votes = $rate*60;
  35. }
  36. else {
  37.     $votes = $rate*50;
  38. }
  39.  
  40. $api = new VkApiNode($app_id, $api_secret);
  41. $query = $api->withdrawVotes($viewer_id, $votes);   
  42. $result = new SimpleXMLElement(get_url($query));
  43. if ($result->transferred>0) {
  44. // повышаем рейтинг
  45. $message = $_POST['message'];
  46. $query = $api->addRating($uid, $rate, $message);   
  47. $result = new SimpleXMLElement(get_url($query));
  48.  
  49. if ($result->rating_added>0)
  50.     echo 'Рейтинг повышен!';
  51. else {
  52.     switch($result->error_code)
  53.     {
  54.     case 2:
  55.       echo "Приложение выключено!";
  56.     break;
  57.     case 113:
  58.       echo "Неверный id пользователя";
  59.     break;
  60.     case 147:
  61.       echo "На балансе приложения недостаточно голосов!";
  62.     break;
  63.     default:      
  64.       echo "Произошла ошибка!";
  65.     }
  66. }
  67. }
  68. else {
  69.     switch($result->error_code)
  70.     {
  71.     case 2:
  72.       echo "Приложение выключено!";
  73.     break;
  74.     case 113:
  75.       echo "Неверный id пользователя";
  76.     break;
  77.     case 151:
  78.       echo "Неверное количество голосов!";
  79.     break;
  80.     case 502:
  81.       echo "На балансе недостаточно голосов!";
  82.     break;
  83.     default:      
  84.       echo "Произошла ошибка!";
  85.     }
  86. }
  87. // flapps.ru
  88. }
  89. else
  90.     echo 'error';
  91. ?>


Все необходимые классы и другие файлы находятся в архиве с исходником.

Исходник Чтобы увидеть ссылку - зарегистрируйтесь


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

Серверная часть
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. Всё готово!

За это сообщение автора Александр поблагодарили - 5:
Евгений, kek$, LonelyANDRoid, mixakma, Константин
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
 
Автор темы
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45
Откуда: Санкт-Петербург
Благодарил (а): 126 раз.
Поблагодарили: 771 раз.

Чтобы убрать блок с рекламой, зарегистрируйтесь на форуме или войдите.

Google
 



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

Сообщение kek$ » 31 дек 2010, 17:41

sps
vk.com/app1994441
Изображение
Изображение

За это сообщение автора kek$ поблагодарил:
BORA
Аватара пользователя
kek$

 
Сообщения: 80
Зарегистрирован: 25 июл 2010, 17:33
Благодарил (а): 3 раз.
Поблагодарили: 3 раз.

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

Сообщение BORA » 31 дек 2010, 18:21

блин , жалко что я ламер и не понимаю как импортировать папки =(
http://flapps.ru/forum/topic3937.html - Продам домен вконтакте.ком
http://flapps.ru/forum/post29970.html#p29970 - Аренда серверов , очень дёшево
Аватара пользователя
BORA

 
Сообщения: 171
Зарегистрирован: 21 дек 2010, 20:05
Благодарил (а): 51 раз.
Поблагодарили: 7 раз.

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

Сообщение mixakma » 07 янв 2011, 00:56

я не могу открыть addrating.fla в flash CS4
пишет "unexpected format" в чём может быть проблема?
mixakma

 
Сообщения: 8
Зарегистрирован: 07 янв 2011, 00:53
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.

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

Сообщение Александр » 07 янв 2011, 01:07

mixakma
Нужен CS5.

Пересохранил для CS4.
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
 
Автор темы
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45
Откуда: Санкт-Петербург
Благодарил (а): 126 раз.
Поблагодарили: 771 раз.

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

Сообщение mixakma » 07 янв 2011, 01:16

Александр писал(а):mixakma
Пересохранил для CS4.


что???
mixakma

 
Сообщения: 8
Зарегистрирован: 07 янв 2011, 00:53
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.

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

Сообщение Александр » 07 янв 2011, 01:22

mixakma
addrating.fla
Перекачай исходник и попробуй ещё раз.
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
 
Автор темы
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45
Откуда: Санкт-Петербург
Благодарил (а): 126 раз.
Поблагодарили: 771 раз.

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

Сообщение mixakma » 07 янв 2011, 01:25

Благодарю, всё работает)
mixakma

 
Сообщения: 8
Зарегистрирован: 07 янв 2011, 00:53
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.

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

Сообщение Ho4Hou » 09 янв 2011, 07:16

3. Создать swf файл и загрузить его в контакт.
Нужно папку в SWF конвертировать?
Ho4Hou

 
Сообщения: 10
Зарегистрирован: 09 янв 2011, 06:16
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.

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

Сообщение Александр » 09 янв 2011, 15:49

Ho4Hou
Нужно изучить программирование в Adobe Flash. Вот здесь topic3.html в пункте 7 написано как создать swf.
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
 
Автор темы
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45
Откуда: Санкт-Петербург
Благодарил (а): 126 раз.
Поблагодарили: 771 раз.

След.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в Неактуальные уроки (API 2.0 и устаревшие методы)



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron