Публикации картинок с сервера на стену (wall.savePost)

Темы только для ознакомления. Уроки по использованию старой версии ВКонтакте API и устаревших методов.
Ralph_DiMarko
Сообщения: 1
Зарегистрирован: 26 июн 2010, 21:16

Re: Публикации картинок с сервера на стену (wall.savePost)

Сообщение Ralph_DiMarko »

Подскажите пожалуйста кто нить пример схему если картинка в приложении.
ТимурНН
Сообщения: 1
Зарегистрирован: 23 июл 2010, 19:08

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 передаётся в запросе ниже            }
это верно?

Извиняюсь за наверное глупые вопросы, но я новичок и потому некоторые ошибки повергают меня шок
egor
Сообщения: 35
Зарегистрирован: 23 июл 2010, 10:58

Re: Публикации картинок с сервера на стену (wall.savePost)

Сообщение egor »

Спасибо за хороший урок! Модернизировал свое приложение! Сам пока новичок я, но потихоньку озарение ко мне приходит!
Посмотрите, если интересно: http://vkontakte.ru/app1886032
KIka_kok
FL Team
FL Team
Сообщения: 680
Зарегистрирован: 18 июл 2010, 19:52

Re: Публикации картинок с сервера на стену (wall.savePost)

Сообщение KIka_kok »

Помогите сделать 2 картинки делаю в main.as такой код

Код: Выделить всё

 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='Готово';        }    }}
ВОт просто скопировал 2 кода и заменил инстансы ,на сцене скопировал старое и пменял инстансы под main.as но при загрузке в контакт только 1 отправляется а второй нет в чем проблема?
Mustafin.M
Сообщения: 166
Зарегистрирован: 09 май 2010, 08:49

Re: Публикации картинок с сервера на стену (wall.savePost)

Сообщение Mustafin.M »

ТимурНН писал(а): Сделал как описано здесь получил ошибку: 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 плеер.
ilius
Сообщения: 1
Зарегистрирован: 27 июл 2010, 18:45

Re: Публикации картинок с сервера на стену (wall.savePost)

Сообщение ilius »

Александр писал(а):egor_pe4kin
Если об этом:

Код: Выделить всё

var post_id:String='post1';
То этот post_id создаётся приложением. Его нужно указывать самому.
Так и не понятно: создается приложением или нужно указывать самому? Пробую указать сам, пробую не указывать. При любом раскладе у меня во flashvars при открытии поста со стены возвращается пустой post_id. Как так?

Фото беру не с альбома а по такой схеме:
Загрузка изображения на стену пользователя
Загрузка изображения на стену пользователя ВКонтакте осуществляется приложением в 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, приложение может сохранить изображение с дополнительным текстом на стене пользователя.
Superman
Сообщения: 38
Зарегистрирован: 11 апр 2010, 16:16

Re: Публикации картинок с сервера на стену (wall.savePost)

Сообщение Superman »

А как считать post_id?
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Публикации картинок с сервера на стену (wall.savePost)

Сообщение Александр »

ilius
Нужно указывать самому. Указывать в правильном виде.

post_id - id записи, содержащий символы от a до z и от 0 до 9. Этот параметр будет передаваться в приложение через flashVars при просмотре или создании записи на стене пользователя.

Если фото публикуется, то проверяй правильный ли ты передаешь параметр post_id (никаких "-" и "_" быть не должно) и проверь правильно ли ты его считываешь.


Superman
В коде из урока он считывается.

Код: Выделить всё

wrapper.application.parameters.post_id;
Ответить