|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Feb 2014
Сообщений: 25
|
Пример работы photos.getWallUploadServer
Добрый вечер. понимаю, что вас все задолбали, но просто уже второй день мучаюсь. Не могу картинку с хостинка на стену пользователю закинуть. Собственно документации как таковой в контакте мало и не понятно, не подскажите ссылкой или уроком. Есть куча кусков, но одного нормального примера нету. Помогите, а то еще чуть чуть и забьюсь в угол как маленькая девочка, обнимая руками колени.
|
|
|||||
Должен быть подключен Vk Api к флэшке и авторизован пользователь. Так реализуется отправка файла Вконтакте в моем приложении:
userid - номер пользователя (можно получить через friends.get). Если не указано - постит на стенку пользователя. Если постить в группу, то gid: группа. Для загрузки картинки я использовал класс MultipartURLLoader. Скачать например тут. Ему передаем файл картинки в ByteArray. function responseFromServer(data) { mll = new MultipartURLLoader(); mll.addEventListener(Event.COMPLETE, onUploadCompleteThroughAlarm); mll.addFile(byteArray, "file.jpg", "file1", 'image/jpg'); mll.load(data.upload_url); } Если картинка не сохраняется (например, не берется её ByteArray), то есть большая вероятность, что нарушены правила безопасности флэша. |
|
|||||
Регистрация: Feb 2014
Сообщений: 25
|
все равно не понятно)
откуда взялось : И не понятна работа 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(data) { mll.addEventListener(Event.COMPLETE, onUploadCompleteThroughAlarm); mll.addFile(pictureBytaArray, "/result1/123211.png", "file1", 'image/jpg'); mll.load(data.upload_url); } private function onUploadCompleteThroughAlarm(e:Event) { trace(); } } } код сейчас выглядит так но не работает 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 { } } } Последний раз редактировалось Lampy; 16.02.2014 в 20:03. |
Часовой пояс GMT +4, время: 22:37. |
|
« Предыдущая тема | Следующая тема » |
|
|