Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   Кто работал с vkontakte API ? требуется помощь (http://www.flasher.ru/forum/showthread.php?t=122168)

Neirol 01.10.2009 16:10

Ты что с ума сошел? Или тебя лень с потрохами сожрала? :eek:
Прочитай хотя бы первую страницу документации! :wacko:

Кошколов 15.05.2011 14:16

Цитата:

Сообщение от qazwsx (Сообщение 803047)
Код AS1/AS2:

import utils.Timer;
 
class MXMLSocket extends LoadVars
{
        public var onError:Function;
        public var onRecive:Function;
 
        private var query:String = '';
 
        private var server:String;
 
        private var timeOutTimer:Timer;
        private var key:String = '';
 
        public function MXMLSocket(_server:String, timeOut:Number )
        {
                this.server = _server;
 
                timeOutTimer = undefined;
 
                if ( timeOut > 0 )
                        initTimeOutTimer( timeOut );       
 
 
        }
 
        private function onData(data:String):Void
        {
                this.stopTimeOutTimer();
 
                if (data == undefined)
                {
                        onErrorHandler("mxml server dont response on " + this.server );
                        return;
                }
 
                onRecive(data, key);
        }
 
        public function send(str:String):Void
        {
                var query:LoadVars = new LoadVars();
 
                query.query = str;
 
                this.postData(query);
        }
 
 
        public function sendObj(obj:Object):Void
        {
                var sendObject:LoadVars = new LoadVars();
 
                for (var vr:String in obj)
                {
                        sendObject[vr] = obj[vr];
                }
 
                postData( sendObject );
 
        }
 
        private function postData( sendObject:LoadVars ):Void
        {
                sendObject.sendAndLoad(server, this, 'POST');
 
                if ( this.isTimeOutEnable() )
                {
                        this.startTimeOutChecker();
                }
        }
 
 
        private function onErrorHandler(reason:String):Void
        {
                this.stopTimeOutTimer();
                this.onError( reason );
        }
 
 
        /// --- timeout
 
        private function initTimeOutTimer( timeOut:Number ):Void
        {
                timeOutTimer = new Timer( timeOut , false );
                timeOutTimer.addEventListener( Timer.TICK_EVENT , Delegate.create(this, onTimeOutHandler) );
        }       
 
 
        private function onTimeOutHandler(event:Object):Void
        {
                //this.stopTimeOutTimer();
                this.onErrorHandler( "mxml server "+ this.server +" dont response, time out " + this.timeOutTimer.durationSeconds );
        }
 
        private function isTimeOutEnable():Boolean
        {
                return this.timeOutTimer != undefined;
        }
 
        private function startTimeOutChecker():Void
        {
                this.timeOutTimer.turnOn();
        }
 
        private function resetTimeOutTimer():Void
        {
                this.timeOutTimer.reset();
        }
 
        private function stopTimeOutTimer():Void
        {
                this.timeOutTimer.turnOff();
        }
 
        /// timeout ---
}

Код AS1/AS2:

import MD5;
import MXMLSocket;
 
class BLAHClass
{
        private var server:String = 'http://api.vkontakte.ru/api.php?';
        private var api_id:String = '';
        private var viewer_id:String = '';
        private var secret:String = '';
        private var uid:String = '';
 
        private var sock:MXMLSocket;
 
        static var GET:String = 'getVariable';
        static var SET:String = 'putVariable';
 
        public var onData:Function;
 
        public function BLAHClass(_api_id:String, _viewer_id:String, _secret:String, userID:String)
        {
                uid = userID;
                api_id = _api_id;
                viewer_id = _viewer_id;
                secret = _secret;
                sock = new MXMLSocket();
 
                sock.onRecive = recive;
                sock.onError = error;
        }
 
        private function recive(data:String):Void
        {
                //////////////////
        }
 
        private function error(reason:String):Void
        {
                //////////////
        }
 
        public function setID(str:String, key:String)
        {
                send(key,SET, str);
        }
 
        public function getID(key:String):Void
        {
                send(key, GET);
        }
 
        private function send(key:String, met:String, value:String):Void
        {
                var obj:Object = {api_id:String, method:String, key:key};
                var method:String = met;
 
                if (value != undefined)
                {
                        obj.value = value;
 
                }
                obj.user_id = _root.user_id;       
 
                obj.api_id = api_id;
                obj.method = method;
                //obj.test_mode = '1';
 
                var sig:String = generateSig(obj);
                obj.sig = sig;
 
 
                sock.sendObj(obj);
        }
 
        private function generateSig(obj:Object):String
        {
                var sig:String = '';
                var params:Array = [];
 
                for (var vr:String in obj)
                {
                        params.push(vr+'='+obj[vr]);
                }
                params = params.sort();
 
                for (var i:Number = 0; i < params.length; i++)
                {
                        sig+=params[i];
                }
                sig = viewer_id + sig + secret;
                //trace(sig);
                sig = MD5.encrypt(sig);
                return sig;
        }
}


А как пользоваться этими скриптами?

carrotoff 15.05.2011 19:13

Цитата:

А как пользоваться этими скриптами?
Инструкция была дана выше. Почитайте внимательно документацию. Сложных примеров там нет, иначе это была бы не документация.

cleptoman, полностью поддерживаю.


Часовой пояс GMT +4, время: 08:41.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.