Работа с переменными(getVariable, getVariables, putVariable)

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

Работа с переменными(getVariable, getVariables, putVariable)

Сообщение Александр » 02 июн 2010, 17:55

Работа с переменными (getVariable, getVariables, putVariable)
ActionScript 3.0 (Adobe Flash CS4)

Когда-то давно пробовал работать с переменными, решил оформить код для урока и выложить здесь. Может быть кому-нибудь пригодится.
Приложение записывает значение в переменную, получает значение из одной переменной, получает значения сразу нескольких переменных.

Для работы с методами ВКонтакте API используется библиотека VkApi. Находится в архиве с исходником.

Описание используемых методов

getVariable
Возвращает значение переменной, номер которой задан в параметре key (0-4095).
key - Ключ от 0 до 4095, идентификатор переменной.

getVariables
Возвращает список значений диапазона переменных, заданного с помощью входных параметров key (номер первой переменной) и count (число переменных). Данный метод позволяет получить за один запрос до 32 переменных.
key - Ключ от 0 до 4095, идентификатор первой переменной.
count - Значение от 1 до 32, количество переменных.

putVariable
Помещает в переменную, номер которой задан в параметре key (0-4095), значение, переданное в параметре value (строка в utf-8, не более 255 байтов).
key - Ключ от 0 до 4095, идентификатор переменной.
value - Значение, которое нужно записать в переменную. Строка в utf-8, не более 255 байтов

При обращении к переменным user_vars с ключами от 1280 до 1791, необходимо в параметрах передать user_id - id пользователя, переменные которого считываются.


Создание приложения

1. Добавляем на сцену:
Текстовые поля с именами:
- var_tf (поле ввода записываемого значения)
- result_tf (поле с результатами)

Кнопки с именами:
- put_btn
- get1_btn
- get2_btn


2. Создаём Main.as и пишем код:
  1. /*
  2.  
  3. http://flapps.ru/forum/ - форум о создании флеш приложений на основе ВКонтакте API
  4.  
  5. */
  6. package {
  7.     import flash.net.URLLoader;
  8.     import flash.net.URLRequest;
  9.     import flash.display.*;
  10.     import flash.events.*;
  11.     import vk.VkApiNode;
  12.  
  13.     public class Main extends Sprite {
  14.         public var api_id:Number=1727522;// ID приложения
  15.         public var api_secret:String="1gqE8m34rb";// секретный ключ
  16.         public var api:VkApiNode;
  17.         public var url_loader:URLLoader;
  18.         public var url_request:URLRequest;
  19.         public var query:String;
  20.         public var viewer_id:Number;
  21.         public var server_url:String;
  22.  
  23.  
  24.         public function Main():void {
  25.             var params:Object=LoaderInfo(root.loaderInfo).parameters;
  26.             viewer_id=params['viewer_id'];
  27.             // определяем адрес сервиса API (vkontakte.ru или vk.com)
  28.             server_url=params['api_url']+'?';
  29.  
  30.             api=new VkApiNode(viewer_id,api_id,api_secret,false,'XML','2.0',server_url);
  31.  
  32.             put_btn.addEventListener(MouseEvent.CLICK,putVariable);
  33.             get1_btn.addEventListener(MouseEvent.CLICK,getVariable);
  34.             get2_btn.addEventListener(MouseEvent.CLICK,getVariables);
  35.  
  36.         }
  37.  
  38.         public function putVariable(e:MouseEvent):void {
  39.             // записываем значение из поля var_tf в переменую 1040
  40.             query=api.putVariable(1040,var_tf.text);
  41.             url_request=new URLRequest(query);
  42.             url_loader=new URLLoader  ;
  43.             url_loader.addEventListener(Event.COMPLETE,onLoaded1);
  44.             url_loader.load(url_request);
  45.         }
  46.  
  47.         public function getVariable(e:MouseEvent):void {
  48.             // получаем значение из переменной 1040
  49.             query=api.getVariable(1040);
  50.             url_request=new URLRequest(query);
  51.             url_loader=new URLLoader  ;
  52.             url_loader.addEventListener(Event.COMPLETE,onLoaded2);
  53.             url_loader.load(url_request);
  54.         }
  55.  
  56.         public function getVariables(e:MouseEvent):void {
  57.             // получаем значения из 10 переменных, начиная с переменной 1040
  58.             query=api.getVariables(1040,10);
  59.             url_request=new URLRequest(query);
  60.             url_loader=new URLLoader  ;
  61.             url_loader.addEventListener(Event.COMPLETE,onLoaded3);
  62.             url_loader.load(url_request);
  63.         }
  64.  
  65.         // добавлено
  66.         private function onLoaded1(event:Event):void {
  67.             var response=XML(url_loader.data);
  68.             if (response.error_code<=0) {// если нет сообщения об ошибке
  69.                 result_tf.text='Добавлено';
  70.             } else {
  71.                 result_tf.text='Ошибка '+response..error_msg;
  72.             }
  73.  
  74.         }
  75.  
  76.         // получено значение 1 переменной
  77.         private function onLoaded2(event:Event):void {
  78.             var response=XML(url_loader.data);
  79.             result_tf.text=response.toString();
  80.         }
  81.  
  82.         // получено значение нескольких переменных
  83.         private function onLoaded3(event:Event):void {
  84.             var response=XML(url_loader.data);
  85.             result_tf.text='';
  86.             for each (var item in response.var_info) {
  87.                 result_tf.appendText('key: ' + item.key + '\nvalue: ' +item.value + '\n\n');
  88.             }
  89.         }
  90.  
  91.     }
  92. }

Заменяем api_id и api_secret на свои данные.


3. Подключаем Main.as к fla
Если не знаете как, то посмотрите как это было сделано в этом уроке topic3.html


4. Загружаем приложение в контакт
Редактирование -> Настройки -> Обновление SWF-приложения -> Обзор -> Начать загрузку.

- Если приложение выключено, то включаем
Редактирование -> Настройки -> Состояние -> Приложение включено и видно всем.

- Если включен контейнер, то выключаем
Редактирование -> Настройки -> Flash-контейнер -> Без использования контейнера.


5. Всё готово!

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

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

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

Google
 



Re: Работа с переменными(getVariable, getVariables, putVariable)

Сообщение Влад » 02 июн 2010, 19:14

Изображение
https://hrefs.ru - сервис крауд маркетинга №1 в 2019 году
Аватара пользователя
Влад
Модератор
Модератор
 
Сообщения: 654
Зарегистрирован: 29 апр 2010, 22:24
Благодарил (а): 26 раз.
Поблагодарили: 58 раз.

Re: Работа с переменными(getVariable, getVariables, putVariable)

Сообщение NikiTa » 05 июн 2010, 11:54

2 ошибки при компиляции
1120: Обращение несуществующего свойства server_url.
1120: Обращение несуществующего свойства server_url.
icq 2618030
NikiTa

 
Сообщения: 97
Зарегистрирован: 06 янв 2010, 15:17
Благодарил (а): 1 раз.
Поблагодарили: 7 раз.

Re: Работа с переменными(getVariable, getVariables, putVariable)

Сообщение Влад » 05 июн 2010, 14:17

NikiTa писал(а):2 ошибки при компиляции
1120: Обращение несуществующего свойства server_url.
1120: Обращение несуществующего свойства server_url.

аналогичная фигня
https://hrefs.ru - сервис крауд маркетинга №1 в 2019 году
Аватара пользователя
Влад
Модератор
Модератор
 
Сообщения: 654
Зарегистрирован: 29 апр 2010, 22:24
Благодарил (а): 26 раз.
Поблагодарили: 58 раз.

Re: Работа с переменными(getVariable, getVariables, putVariable)

Сообщение Александр » 05 июн 2010, 15:01

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

Re: Работа с переменными(getVariable, getVariables, putVariable)

Сообщение sersche » 05 июн 2010, 15:42

оо.. спасибо!! щас будем пробовать..
доброе утро, мир
sersche
FL Team
FL Team
 
Сообщения: 598
Зарегистрирован: 11 май 2010, 13:45
Благодарил (а): 28 раз.
Поблагодарили: 16 раз.

Re: Работа с переменными(getVariable, getVariables, putVariable)

Сообщение agni » 04 июл 2010, 11:33

что стоит хранить в этих переменных?
инфу о действиях пользователя, его заказы достижения и пр. лучше где хранить? в этих переменных или лучше использовать свой сторонний сервер (php+mysql) ?
скайп: consacrer
agni

 
Сообщения: 100
Зарегистрирован: 07 июн 2010, 11:04
Благодарил (а): 12 раз.
Поблагодарили: 0 раз.

Re: Работа с переменными(getVariable, getVariables, putVariable)

Сообщение Влад » 04 июл 2010, 16:38

лучше использовать свой сторонний сервер (php+mysql) ?
https://hrefs.ru - сервис крауд маркетинга №1 в 2019 году
Аватара пользователя
Влад
Модератор
Модератор
 
Сообщения: 654
Зарегистрирован: 29 апр 2010, 22:24
Благодарил (а): 26 раз.
Поблагодарили: 58 раз.

Re: Работа с переменными(getVariable, getVariables, putVariable)

Сообщение Александр » 05 июл 2010, 17:32

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

Re: Работа с переменными(getVariable, getVariables, putVariable)

Сообщение pyco.mypucmo » 19 окт 2010, 11:59

А есть какие-нибудь известные проблемы с защитой данных, при хранении их на серверах Вконтатка? То есть, не проще ли взломать приложение, использующее сервера Вконтакта, чем те, которые использую сторонние сервера?
pyco.mypucmo

 
Сообщения: 1
Зарегистрирован: 19 окт 2010, 11:57
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

След.

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



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

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