photos.getWallUploadServer
photos.getWallUploadServer
подскажите пример работы метода photos.getWallUploadServer или подскажите как он работает. А то прочитанная документация самого контакта меня не просветила(
Re: photos.getWallUploadServer
вот нашел как бы пример, но не понятно, что, откуда и куда
http://flapps.ru/forum/post48273.html?h ... ver#p48273
http://flapps.ru/forum/post48273.html?h ... ver#p48273
Re: photos.getWallUploadServer
вот такой код сделал, но понятное дело что не работает)
Код: Выделить всё
package { import adobe.utils.CustomActions; import flash.display.Sprite; import flash.events.DataEvent; import flash.media.Microphone; import flash.media.Sound; import flash.media.SoundChannel; import flash.media.SoundTransform; import flash.net.drm.LoadVoucherSetting; import flash.utils.ByteArray; import vk.api.MD5; import flash.net.navigateToURL; import flash.net.*; import flash.display.*; import vk.api.serialization.json.JSON; import flash.utils.getDefinitionByName; import flash.text.*; import vk.APIConnection; import vk.events.*; import vk.ui.VKButton; import flash.display.Loader; import flash.display.SimpleButton; import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; import flash.net.URLRequest; /** * ... * @author Lampy */ public class Main extends Sprite { private var flashVars: Object = stage.loaderInfo.parameters as Object; private var VK: APIConnection = new APIConnection(flashVars); private var mll:MultipartURLLoader = new MultipartURLLoader(); private var pictureBytaArray:ByteArray = new ByteArray(); public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { var btn:VKButton = new VKButton('qqqqqqqqQQqqqq'); addChild(btn); btn.addEventListener(MouseEvent.CLICK, onclics); } private function onclics (e:MouseEvent) : void { VK.api('photos.getWallUploadServer',{ uid:''},responseFromServers); } private function responseFromServers(datas:Object) :void { mll.addEventListener(Event.COMPLETE, onUploadCompleteThroughAlarm); mll.addFile(pictureBytaArray, "http://kittenscati.ucoz.ru/_ph/1/680958075.jpg", "file1", 'image/jpg'); mll.load(datas.upload_url); } private function onUploadCompleteThroughAlarm(e:Event) :void { var answer:String = mll.loader.data; var data:Object = JSON.decode(answer); VK.api('photos.saveWallPhoto', {uid: '', server:data.server, photo:data.photo, hash:data.hash }, onSaveWallPhoto); } private function onSaveWallPhoto (e:Event) :void { } } }
Re: photos.getWallUploadServer
код сейчас выглядит так
Код: Выделить всё
package { import adobe.utils.CustomActions; import flash.display.Sprite; import flash.events.DataEvent; import flash.geom.Matrix; import flash.media.Microphone; import flash.media.Sound; import flash.media.SoundChannel; import flash.media.SoundTransform; import flash.net.drm.LoadVoucherSetting; import flash.utils.ByteArray; import ru.inspirit.image.encoder.JPGEncoder; import vk.api.MD5; import flash.net.navigateToURL; import flash.net.*; import flash.display.*; import vk.api.serialization.json.JSON; import flash.utils.getDefinitionByName; import flash.text.*; import vk.APIConnection; import vk.events.*; import vk.ui.VKButton; import flash.display.Loader; import flash.display.SimpleButton; import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; import flash.net.URLRequest; /** * ... * @author Lampy */ public class Main extends Sprite { private var flashVars: Object = stage.loaderInfo.parameters as Object; private var VK: APIConnection = new APIConnection(flashVars); private var mll:MultipartURLLoader = new MultipartURLLoader(); private var pictureBytaArray:ByteArray = new ByteArray(); const IMAGE_URL:String = "http://www.helpexamples.com/flash/images/logo.png"; private var ldr:Loader = new Loader(); private var bitmap1:Bitmap; private var fl_Loader = new Loader(); public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { var btn:VKButton = new VKButton('qqqqqqqqQQqqqq'); addChild(btn); btn.addEventListener(MouseEvent.CLICK, onclics); fl_ClickToLoadUnloadSWF(); ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, ldr_complete); ldr.load(new URLRequest(IMAGE_URL)); } private function fl_ClickToLoadUnloadSWF():void { fl_Loader.load(new URLRequest('http://adena-shop.ru/result1/1.png')); fl_Loader.contentLoaderInfo.addEventListener(Event.COMPLETE, drawImage2); } private function drawImage2(event:Event): void { var mySprite:Sprite = new Sprite(); var myBitmap:BitmapData = new BitmapData(fl_Loader.width, fl_Loader.height, false); myBitmap.draw(fl_Loader, new Matrix()); var jpgEncoder:JPGEncoder = new JPGEncoder(100); pictureBytaArray = jpgEncoder.encode(myBitmap); } private function ldr_complete(evt:Event):void { var bmp:Bitmap = ldr.content as Bitmap; bitmap1 = new Bitmap(bmp.bitmapData); } private function onclics (e:MouseEvent) : void { VK.api('photos.getWallUploadServer',{ uid:''},responseFromServers); } private function responseFromServers(datas:Object) :void { mll.addEventListener(Event.COMPLETE, onUploadCompleteThroughAlarm); mll.addFile(pictureBytaArray, "file.jpg", "file1", 'image/jpg'); mll.load(datas.upload_url); } private function onUploadCompleteThroughAlarm(e:Event) :void { var answer:String = mll.loader.data; var data:Object = JSON.decode(answer); VK.api('photos.saveWallPhoto', {uid: '', server:data.server, photo:data.photo, hash:data.hash }, onSaveWallPhoto); } private function onSaveWallPhoto (e:Event) :void { } } }
Re: photos.getWallUploadServer
vk.com/dev/photos.getWallUploadServer
Re: photos.getWallUploadServer
Если нужно загрузить фото на стену из флэш, то я использовал такой код
Если что не понятно спрашивай
Код: Выделить всё
//Сначала нужно узнать адрес для загрузки на сервер private function getURLPhoto():void { var id:String = '';// - Ид пользователя, куда будешь загружать фотку, если загружаешь в группу, то там нужно вместо //user_id, group_id использовать // Apiconnetction - это VK класс для API Apiconnetction.api("photos.getWallUploadServer", { user_id:id }, onUrlGetHandler, onUrlErrorGetHandler);} private function onUrlGetHandler(data:Object):void { //Затем загружаем фотку на этот сервер makePhoto(data.upload_url);} private function onUrlErrorGetHandler(data:Object):void { } private function makePhoto(url:String):void { var bitmap:BitmapData = new BitmapData(600, 600, false); bitmap.draw(this);//Я делал скриншот для отправки на стену. var byteArray:ByteArray = PNGEncoder.encode(bitmap); var uploader:Uploader = new Uploader();// - Uploader это тот же MultipartUploader uploader.addFile(byteArray, 'mypic.png', 'file1', 'image/png'); uploader.loader.addEventListener(Event.COMPLETE, function(e:Event):void { var loader:URLLoader = URLLoader(e.target); var data:Object = JSON.decode(loader.data); saveWallPhoto(data); }); uploader.load(url);} private function saveWallPhoto(data:Object):void { //После загрузки сохраняем ее в фотках пользователя var id:String = ''; Apiconnetction.api("photos.saveWallPhoto", { user_id: id, photo: data.photo, server: data.server, hash: data.hash }, onPhotoSaveHandler, onPhotoSaveHandlerError); } private function onPhotoSaveHandlerError(data:Object):void { } private function onPhotoSaveHandler(data:Array):void { //И размещаем на стене //data[0].id - здесь будет ид фотки, типа photoXXXX-XXXX Apiconnetction.api("wall.post", { message: "Текст", attachments:data[0].id }, wallpost, wallerror); } private function wallpost(data):void { } private function wallerror(data):void { }
Re: photos.getWallUploadServer
Glango, а что такое у нас PNGEncoder.encode() и var uploader:Uploader = new Uploader();
и где их взять
и где их взять
- alexandr_ratush
- Сообщения: 94
- Зарегистрирован: 05 мар 2014, 21:47
Re: photos.getWallUploadServer
PNGEncoder это класс библиотеки https://code.google.com/p/as3corelib/so ... Encoder.as
Uploader - это уже пользовательский класс .
Вот тут есть пример работы http://nocens.ru/index.php?newsid=8399
Uploader - это уже пользовательский класс .
Вот тут есть пример работы http://nocens.ru/index.php?newsid=8399
Re: photos.getWallUploadServer
Uploader сделал копипастом из MultiPartLoadera
Лень было всю библиотеку подключать. А PNGEncoder - преобразует битмап в массив байтов, если загружаешь с компа рисунок, то можно его и не использовать.
Лень было всю библиотеку подключать. А PNGEncoder - преобразует битмап в массив байтов, если загружаешь с компа рисунок, то можно его и не использовать.