|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Apr 2008
Сообщений: 29
|
Опубликовать запись на стену нескольким друзьям
Добрый день. Есть вопрос как реализовать отправку записи на стену нескольким друзьям.
На данный момент сделал следующее: import com.adobe.serialization.json.JSON; import com.adobe.images.JPGEncoder; import MultipartURLLoader.*; import flash.events.Event; import flash.utils.ByteArray; import flash.display.BitmapData; import flash.display.DisplayObject; import flash.display.Bitmap; import flash.display.PixelSnapping; import flash.geom.Matrix; public class SaveCard { private var main; private var VK; private var user; private var card; private var msg; private var mll:MultipartURLLoader; private var uploadResponse; public function SaveCard(main, user, card, msg) { this.msg = msg; this.user = user; this.main = main; this.card = card; this.VK = main.VK; VK.api('photos.getWallUploadServer',{uid:user},responseFromServer,main.onError); } private function responseFromServer(data) { mll = new MultipartURLLoader ; mll.addEventListener(Event.COMPLETE, onUploadCompleteThroughAlarm); mll.addFile(saveCroppedImage(card),"file.jpg","file1",'image/jpg'); mll.load(data.upload_url); uploadResponse = data; main.debug.appendText("Upload server answer"+data.toString()); } private function onUploadCompleteThroughAlarm(e:Event) { var answer:String = mll.loader.data; main.debug.appendText("on upload answer: "+answer); var data:Object = JSON.decode(answer); VK.api('wall.savePost', {wall_id: user, post_id:"post1", server:data.server, photo:data.photo, hash:data.hash, message: msg }); } } Цитата:
но в данном случае я непонимаю ни где взять вконтактовский кроссдоменик, ни куда передавать loaderContext? Ну и главный вопрос. Если я таки смогу победить ошибку с безопасностью то смогу ли используя этот класс рассылать посту выбранным ранее друзьям? |
|
|||||
Регистрация: Apr 2008
Сообщений: 29
|
спасибо.
но кажется мне это не подходит. обьясню ситуацию: в приложении создается некий MovieClip() наполняется картинками из библиотеки (никаких внешних загрузок) дальше из мувиклипа делается ByteArray и с ним (байтэрэем) происходит 2 действия. первое это рисуется новый но скадрированый обьект для подтверждения пользователем. и воторое (по клику) этот ByteArray передается в выше описаный класс. точнее сюда: я пробовал использовать различные вариации класса MultipartData но это ничего не меняет. событие случается как надо и всегда получаю ответ типа такого: Цитата:
VK.api('wall.savePost', {wall_id: user, post_id:"post1", server:data.server, photo:data.photo, hash:data.hash, message: msg }); вопрос что не так или как это сделать чтобы работало? |
|
|||||
Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
|
Я через посредник отправляю запрос.
Какая ошибка-то? |
|
||||||
Регистрация: Apr 2008
Сообщений: 29
|
ошибка:
Цитата:
немного изменил код и стало лучше но проблема не исчезла: public function PostCard(main, user, byteArray, msg) { this.msg = msg; this.user = user; this.main = main; this.byteArray = byteArray; this.VK = main.VK; VK.api('photos.getWallUploadServer',{uid:user},responseFromServer,main.onError); } private function responseFromServer(data) { mll = new MultipartURLLoader ; mll.addEventListener(Event.COMPLETE, onUploadCompleteThroughAlarm); mll.addFile(byteArray, "file.jpg", "file1", 'image/jpg'); mll.load(data.upload_url); } private function onUploadCompleteThroughAlarm(e:Event) { var answer:String = mll.loader.data; var data:Object = JSON.decode(answer); VK.api('photos.saveWallPhoto', {uid: user, server:data.server, photo:data.photo, hash:data.hash}, onSaveWallPhoto, main.onError); } private function onSaveWallPhoto(response) { var answer:String = response var data:Object = JSON.decode(answer); VK.api('wall.post', { message: msg, owner_id: user, attachment: data.id }, function(response:Object) { trace(response.post_id)}, main.onError); } Цитата:
Цитата:
хотя ответ в аутпуте такой Цитата:
Добавлено через 1 час 50 минут попробовал вот так: private function onUploadCompleteThroughAlarm(e:Event) { var answer:String = mll.loader.data; var data:Object = JSON.decode(answer); main.debug.appendText("on upload answer: "+data.server+"\n"); VK.api('wall.savePost', {wall_id: user, post_id:"post1", server:data.server, photo:data.photo, hash:data.hash, message: msg }, onSaveWallPhoto, main.onError); //VK.api('photos.saveWallPhoto', {uid: user, server:data.server, photo:data.photo, hash:data.hash}, onSaveWallPhoto, main.onError); } private function onSaveWallPhoto(response) { trace(response) } Цитата:
Все получилось ура! Публикует запись) осталось сделать раасылку нескольким друзьям. думаю что реализую это поочереди. Впрочем кажется мне может помоч в этом execute Добавлено через 6 часов 8 минут вдруг каму то пригодится мне нужно было сделать класс который публиковал бы на стену изображение из ByteArray (в моем случае срисовывался мувиклип). для реализации мне понадобились: - APIConnection.zip - MultipartURLLoader - as3corelib package Scripts { import com.adobe.serialization.json.JSON; import com.adobe.images.JPGEncoder; import MultipartURLLoader.*; import flash.events.Event; import flash.utils.ByteArray; import flash.display.BitmapData; import flash.display.DisplayObject; import flash.display.Bitmap; import flash.display.PixelSnapping; import flash.geom.Matrix; public class PostCard { private var main; // ссылка на основной класс в катором создан APIConnection private var VK; private var user; //uid пользователя на стене которого размещаем запись private var byteArray:ByteArray; // ByteArray изображения которое хотим прикрепить к посту private var msg:String; // текст сообщения поста private var mll:MultipartURLLoader; public function PostCard(main, user, byteArray:ByteArray, msg:String) { this.msg = msg; this.user = user; this.main = main; this.byteArray = byteArray; this.VK = main.VK; VK.api('photos.getWallUploadServer',{uid:user},responseFromServer,main.onError); } private function responseFromServer(data) { mll = new MultipartURLLoader(); mll.addEventListener(Event.COMPLETE, onUploadCompleteThroughAlarm); mll.addFile(byteArray, "file.jpg", "file1", 'image/jpg'); mll.load(data.upload_url); } private function onUploadCompleteThroughAlarm(e:Event) { var answer:String = mll.loader.data; var data:Object = JSON.decode(answer); VK.api('photos.saveWallPhoto', {uid: user, server:data.server, photo:data.photo, hash:data.hash }, onSaveWallPhoto, main.onError); } private function onSaveWallPhoto(data) { VK.api('wall.post', { owner_id: user, attachment: data[0].id, message: msg}, function(e) { trace("onSaveWallPhoto id: "+e.post_id+"\n") }, main.onError); } } } Последний раз редактировалось knaka; 28.02.2011 в 17:27. |
|
|||||
Регистрация: Aug 2011
Сообщений: 50
|
простите, а как выглядело ваше обращение в main к этому классу Scripts.as
|
Часовой пояс GMT +4, время: 10:36. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|