Страница 1 из 2

Защищённые методы

Добавлено: 27 мар 2011, 14:09
Sasho'OK 515
В некоторых источниках я причитал что UNIX TIME можно получать во флеше.
Т.к. случайное число получить непроблема я решил попробовать делать запрос к защищённым методам через Flash.
И тут появился первый косяк :
Код ошибки : 1
Ошибка : Unknown error occurred.
Вопрос : Есть ли способы обращения к этим методам без сервера?


P.S. Есть бесплатный сервер но там неработает из - за его Бесплатности :)

Re: Защищённые методы

Добавлено: 27 мар 2011, 15:10
Александр
Действительно хочешь это делать? Методы нужно использовать с сервера не потому что администрация вконтакте хочет чтобы создатели использовали платный хостинг, а потому что использовать защищенный ключ в клиентской части совсем не безопасно. Работаешь с голосами - украдут голоса. Смогут рассылать спам от имени твоего приложения.

Re: Защищённые методы

Добавлено: 27 мар 2011, 16:41
Sasho'OK 515
ну вот метод SetCounter вроде ничего такого неделает но почему то он защищённый!

Re: Защищённые методы

Добавлено: 27 мар 2011, 20:58
Александр
Sasho'OK 515
Ты документацию по методам читаешь?
Вы также можете обращаться к этому методу при стандартном взаимодействии с клиентской стороны, указывая setCounter вместо secure.setCounter в названии метода. В этом случае параметр uid передавать не нужно, счетчик установится для текущего пользователя.

Метод setCounter при стандартном, а не защищенном взаимодействии можно использовать для того, чтобы, например, сбрасывать счетчик при заходе пользователя в приложение.
Если будешь использовать защищенный ключ в клиентском приложении (не важно для какого метода), ты откроешь доступ ко всем защищенным методам.

Re: Защищённые методы

Добавлено: 28 мар 2011, 09:46
Sasho'OK 515
Щас попробуемс....
Ещё вопрос.
Получается что можно обойтись и без хостинга?

Re: Защищённые методы

Добавлено: 28 мар 2011, 10:47
Sasho'OK 515
Неработает!
Выдаёт ошибку : ErrorIncorrect signature: server authorization
Код : 4

Код запроса :

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

VK.api('setCounter',{ timestamp:time,random:randoom,counter:count_spis },APIDONE,APIBAD);
Вот весь код :

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

package  {        import flash.display.MovieClip;    import flash.events.*;    import flash.utils.*;        import vk.*;    import vk.ui.VKButton;    import vk.events.CustomEvent;    import vk.gui.Box;            public class Test extends MovieClip {        var count_spis:Number = 1;                var fl_TimerInstance:Timer = new Timer(1000, 30);        var fl_SecondsElapsed:Number = 1;                var time;                                                   //UNIX TIME        var randoom:Number = Math.floor(Math.random() * 10000);     //Random                var pay_btn:vk.ui.VKButton = new VKButton("Внести 1 голос",1);                public function Test() {            fl_TimerInstance.addEventListener(TimerEvent.TIMER, fl_TimerHandler);            fl_TimerInstance.start();            addChild(pay_btn);            pay_btn.addEventListener(MouseEvent.CLICK , Handler);        }        function fl_TimerHandler(event:TimerEvent):void        {            time = new Date().time;            trace(time);            fl_SecondsElapsed++;        }        private function Handler(e:MouseEvent):void {            var flashVars: Object = stage.loaderInfo.parameters as Object;            if (!flashVars.api_id) {            flashVars['api_id'] = 2251431;            flashVars['viewer_id'] = 82181093;            flashVars['sid'] = "bbfe6ca26d47759074df0e161248f2ccf6a9c1f3d24f3ffad2f0dd7667eb62";            flashVars['secret'] = "9224ead611";            }            var VK: APIConnection = new APIConnection(flashVars);            VK.api('setCounter',{ timestamp:time,random:randoom,counter:count_spis },APIDONE,APIBAD);        }        private function APIDONE(data:Object):void {            var box:Box = new Box("Done","True",200,200,["OK","Return","Back"]);            addChild(box);            box.visible = true;        }        private function APIBAD(data:Object):void {            var box:Box = new Box("Done","False \n Error" + data.error_msg + "\n_|_\n" + data.error_code,200,200,["OK","Return","Back"]);            addChild(box);            box.visible = true;        }    }}

Re: Защищённые методы

Добавлено: 29 мар 2011, 20:18
Александр
Sasho'OK 515
Ты выборочно читаешь описание методов?
Метод setCounter при стандартном, а не защищенном взаимодействии можно использовать для того, чтобы, например, сбрасывать счетчик при заходе пользователя в приложение.
Тебе этого достаточно? Тогда можешь обойтись и без сервера.

Попробуй не передавать параметры timestamp:time,random:randoom.

Re: Защищённые методы

Добавлено: 30 мар 2011, 07:34
Sasho'OK 515
Александр, я попробовал непередавать параметры но ошибка та же!

Re: Защищённые методы

Добавлено: 30 мар 2011, 22:20
Александр
sid и secret актуальные?

Re: Защищённые методы

Добавлено: 01 апр 2011, 15:03
Sasho'OK 515
да.