Публикации картинок с сервера на стену (wall.savePost)
-
- Сообщения: 1
- Зарегистрирован: 26 июн 2010, 21:16
Re: Публикации картинок с сервера на стену (wall.savePost)
Подскажите пожалуйста кто нить пример схему если картинка в приложении.
Re: Публикации картинок с сервера на стену (wall.savePost)
Александр писал(а):Salty
Но логичнее будет сделать функцию, которой будут передаваться параметры post_id, photo_id, post_message.Код: Выделить всё
send1.addEventListener(MouseEvent.CLICK, send1Click);send2.addEventListener(MouseEvent.CLICK, send2Click); function send1Click(e: MouseEvent):void { var to_id=int(to_id_tf.text); var post_id='post1'; var photo_id='6492_135055734';// идентификатор фотографии, загруженной в фотоальбоме var post_message='Сообщение'; query=api.savePost(to_id,post_id,photo_id,post_message); url_request=new URLRequest(query); url_loader=new URLLoader ; url_loader.addEventListener(Event.COMPLETE,photoPosted); url_loader.load(url_request); } function send2Click(e: MouseEvent):void { var to_id=int(to_id_tf.text); var post_id='post2'; var photo_id='6492_135055734';// здесь пиши другой photo_id var post_message='Сообщение'; query=api.savePost(to_id,post_id,photo_id,post_message); url_request=new URLRequest(query); url_loader=new URLLoader ; url_loader.addEventListener(Event.COMPLETE,photoPosted); url_loader.load(url_request); } function photoPosted(event:Event):void { var response:XML=new XML(url_loader.data); // сохраняем запись на стене пользователя wrapper.external.saveWallPost(response.post_hash); result_tf.text='Готово'; }
Сделал как описано здесь получил ошибку: TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at MethodInfo-76()
Подскажите пожалуйста как решить данную проблему
P.S. данный кусок кода вставил после строк:
Код: Выделить всё
// если приложение открыто со стены if (wrapper.application.parameters.referrer=='wall_view_inline'||wrapper.application.parameters.referrer=='wall_view') { result_tf.text='Здесь вы можете считать post_id и загрузить большое изображение.\n' + 'post_id=' + wrapper.application.parameters.post_id; // post_id передаётся в запросе ниже }
Извиняюсь за наверное глупые вопросы, но я новичок и потому некоторые ошибки повергают меня шок
Re: Публикации картинок с сервера на стену (wall.savePost)
Спасибо за хороший урок! Модернизировал свое приложение! Сам пока новичок я, но потихоньку озарение ко мне приходит!
Посмотрите, если интересно: http://vkontakte.ru/app1886032
Посмотрите, если интересно: http://vkontakte.ru/app1886032
Re: Публикации картинок с сервера на стену (wall.savePost)
Помогите сделать 2 картинки делаю в main.as такой код
ВОт просто скопировал 2 кода и заменил инстансы ,на сцене скопировал старое и пменял инстансы под main.as но при загрузке в контакт только 1 отправляется а второй нет в чем проблема?
Код: Выделить всё
package { import flash.net.*; import flash.display.*; import flash.events.*; import flash.text.*; import vk.VkApiNode; public class Main extends Sprite { private var api_id:Number=1902406;// ID приложения private var api_secret:String="095FdVmnV3";// секретный ключ private var api:VkApiNode; private var viewer_id; private var url_loader:URLLoader; private var url_request:URLRequest; private var query:String; private var wrapper:Object; public function Main():void { this.addEventListener( Event.ADDED_TO_STAGE, onAddedToStage ); } public function onAddedToStage(e: Event):void { wrapper=Object(parent.parent); // если приложение открыто со стены if (wrapper.application.parameters.referrer=='wall_view_inline'||wrapper.application.parameters.referrer=='wall_view') { result_tf.text='Здесь вы можете считать post_id и загрузить большое изображение.\n' + 'post_id=' + wrapper.application.parameters.post_id; // post_id передаётся в запросе ниже } send_btn.addEventListener(MouseEvent.CLICK, send_btnClick); viewer_id=wrapper.application.parameters.viewer_id; to_id_tf.text=viewer_id; } public function send_btnClick(e: MouseEvent):void { // создаем и выполняем запрос api=new VkApiNode(viewer_id,api_id,api_secret); // отправляем запрос ('стена пользователяь которому будет отправлено фото (id)', 'photo_id', 'Сообщение') var to_id=int(to_id_tf.text); // id пользователя, на стену которого будет отправляться фото var post_id='post1';// id записи. Этот параметр будет передаваться в приложение через flashVars при просмотре или создании записи на стене пользователя. var photo_id='36375408_173935757';// идентификатор фотографии, загруженной в фотоальбоме var post_message='Сообщение'; query=api.savePost(to_id,post_id,photo_id,post_message); url_request=new URLRequest(query); url_loader=new URLLoader ; url_loader.addEventListener(Event.COMPLETE,photoPosted); url_loader.load(url_request); } public function photoPosted(event:Event):void { var response:XML=new XML(url_loader.data); // сохраняем запись на стене пользователя wrapper.external.saveWallPost(response.post_hash); result_tf.text='Готово'; } }}/* */package { import flash.net.*; import flash.display.*; import flash.events.*; import flash.text.*; import vk.VkApiNode; public class Main extends Sprite { private var api_id:Number=1902406;// ID приложения private var api_secret:String="095FdVmnV3";// секретный ключ private var api:VkApiNode; private var viewer_id; private var url_loader:URLLoader; private var url_request:URLRequest; private var query:String; private var wrapper:Object; public function Main():void { this.addEventListener( Event.ADDED_TO_STAGE, onAddedToStage ); } public function onAddedToStage(e: Event):void { wrapper=Object(parent.parent); // если приложение открыто со стены if (wrapper.application.parameters.referrer=='wall_view_inline'||wrapper.application.parameters.referrer=='wall_view') { result_tl.text='Здесь вы можете считать post_id и загрузить большое изображение.\n' + 'post_id=' + wrapper.application.parameters.post_id; // post_id передаётся в запросе ниже } lend_btn.addEventListener(MouseEvent.CLICK, lend_btnClick); viewer_id=wrapper.application.parameters.viewer_id; to_id_tl.text=viewer_id; } public function lend_btnClick(e: MouseEvent):void { // создаем и выполняем запрос api=new VkApiNode(viewer_id,api_id,api_secret); // отправляем запрос ('стена пользователяь которому будет отправлено фото (id)', 'photo_id', 'Сообщение') var to_id=int(to_id_tl.text); // id пользователя, на стену которого будет отправляться фото var post_id='post1';// id записи. Этот параметр будет передаваться в приложение через flashVars при просмотре или создании записи на стене пользователя. var photo_id='36375408_174069942';// идентификатор фотографии, загруженной в фотоальбоме var post_message='Сообщение'; query=api.savePost(to_id,post_id,photo_id,post_message); url_request=new URLRequest(query); url_loader=new URLLoader ; url_loader.addEventListener(Event.COMPLETE,photoPosted); url_loader.load(url_request); } public function photoPosted(event:Event):void { var response:XML=new XML(url_loader.data); // сохраняем запись на стене пользователя wrapper.external.saveWallPost(response.post_hash); result_tl.text='Готово'; } }}
-
- Сообщения: 166
- Зарегистрирован: 09 май 2010, 08:49
Re: Публикации картинок с сервера на стену (wall.savePost)
Узнай на какую строчку компилятор ругается.ТимурНН писал(а): Сделал как описано здесь получил ошибку: TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at MethodInfo-76()
Подскажите пожалуйста как решить данную проблему
P.S. данный кусок кода вставил после строк:это верно?Код: Выделить всё
// если приложение открыто со стены if (wrapper.application.parameters.referrer=='wall_view_inline'||wrapper.application.parameters.referrer=='wall_view') { result_tf.text='Здесь вы можете считать post_id и загрузить большое изображение.\n' + 'post_id=' + wrapper.application.parameters.post_id; // post_id передаётся в запросе ниже }
Извиняюсь за наверное глупые вопросы, но я новичок и потому некоторые ошибки повергают меня шок
Пишешь в Flash Cs? Тогда там должен сработать дебаггер.
Либо поставь debug плеер.
Re: Публикации картинок с сервера на стену (wall.savePost)
Так и не понятно: создается приложением или нужно указывать самому? Пробую указать сам, пробую не указывать. При любом раскладе у меня во flashvars при открытии поста со стены возвращается пустой post_id. Как так?Александр писал(а):egor_pe4kin
Если об этом:То этот post_id создаётся приложением. Его нужно указывать самому.Код: Выделить всё
var post_id:String='post1';
Фото беру не с альбома а по такой схеме:
Загрузка изображения на стену пользователя
Загрузка изображения на стену пользователя ВКонтакте осуществляется приложением в 4 этапа:
1. С помощью метода wall.getPhotoUploadServer приложение узнает http-адрес для загрузки фотографий.
2. Приложение формирует POST-запрос на полученный адрес.
Запрос должен содержать поле photo, которое содержит файл с изображением (JPG, PNG, BMP или GIF).
В ответ приложение получает следующие данные в формате JSON:
{"server": '1', "photos": '1', "hash": '12345abcde'}
3. С помощью метода wall.savePost приложение передает серверу полученные данные (server, photo и hash) и получает данные о загруженном изображении, в том числе post_hash.
4. С помощью вызова функции saveWallPost Flash-контейнера с параметром post_hash, полученном в п.3, приложение может сохранить изображение с дополнительным текстом на стене пользователя.
Re: Публикации картинок с сервера на стену (wall.savePost)
А как считать post_id?
Re: Публикации картинок с сервера на стену (wall.savePost)
ilius
Нужно указывать самому. Указывать в правильном виде.
post_id - id записи, содержащий символы от a до z и от 0 до 9. Этот параметр будет передаваться в приложение через flashVars при просмотре или создании записи на стене пользователя.
Если фото публикуется, то проверяй правильный ли ты передаешь параметр post_id (никаких "-" и "_" быть не должно) и проверь правильно ли ты его считываешь.
Superman
В коде из урока он считывается.
Нужно указывать самому. Указывать в правильном виде.
post_id - id записи, содержащий символы от a до z и от 0 до 9. Этот параметр будет передаваться в приложение через flashVars при просмотре или создании записи на стене пользователя.
Если фото публикуется, то проверяй правильный ли ты передаешь параметр post_id (никаких "-" и "_" быть не должно) и проверь правильно ли ты его считываешь.
Superman
В коде из урока он считывается.
Код: Выделить всё
wrapper.application.parameters.post_id;