Страница 1 из 2

Как получить данные через ‘wall.getById’ ?

Добавлено: 24 июн 2011, 13:13
Юрий
Пытаюсь при открытии приложения со стены загрузить в него полноразмерную картинку и текст сообщения.
Исходя из документации http://vkontakte.ru/developers.php?o=-1&p=wall.getById
используя ‘wall.getById’ можно получить URL большого изображения картинки отправленой на стену и текст сообщения.
Делаю так:

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

wrapper=Object(parent.parent);if(wrapper.application.parameters.referrer=='wall_view_inline'||wrapper.application.parameters.referrer=='wall_view'){    var post_id = wrapper.application.parameters.post_id;//id сохраненной на стене записи переданное мной при отправке картинки на стену    var poster_id = wrapper.application.parameters.poster_id;// id пользователя, разместившего запись на стене        var id_for_post:String = String(poster_id) + "_" + String(post_id);    wrapper.external.api('wall.getById', {posts:id_for_post}, onGetById, onError);              } private function onGetById(data: Object):void{    var url:String = data[0].photo.src_big; //получаю URL фотки    message_text.text = data[0].text; //получаю сообщение сообщения     //загружаем фотографию    var photoRequest:URLRequest=new URLRequest(url);    var photo:Loader = new Loader();    photo.load(photoRequest);    photo.x=1;    photo.y=1;    addChild(photo); }
Но вместо сообщения получаю Undefined а URL картинки просто пустой.
Подскажите пожалуйста что я делаю неправильно.
Заранее благодарен.

Re: Как получить данные через ‘wall.getById’ ?

Добавлено: 24 июн 2011, 20:38
Александр

Re: Как получить данные через ‘wall.getById’ ?

Добавлено: 24 июн 2011, 20:51
Юрий
Александр в приведенном вами посте обьясняется что такое post_id. Да, это переменная которую я отправляю при посте на стену и потом получаю ее же. Как один из методов получения URL картинки и сообщения можно расматривать сохранение их в базе данных на стороннем сервере, либо URL можно шифровать темже Hex кодом... Но вопрос состоит в другом. В API контакта существует судя по их описанию специальный метод ‘wall.getById’ и на сколько я понимаю он позволяет получить желаемые данные так как они хранятся в параметрах самого поста на сервере Контакта. Об этом написано тут: http://vkontakte.ru/developers.php?o=-1&p=wall.getById
Поправте меня если я ошибаюсь в выше изложенном.

Re: Как получить данные через ‘wall.getById’ ?

Добавлено: 24 июн 2011, 20:59
Александр
Юрий
Вероятно, в случае с wall.getById, имеется ввиду post_id созданный в результате отправки сообщения методом wall.post.

Если получить записи методом wall.get, то получаемый в ответ id совпадает с post_id?

Re: Как получить данные через ‘wall.getById’ ?

Добавлено: 24 июн 2011, 21:26
Юрий
С 'wall.get', перехода по события в ф-ю onGetById похоже что вобеще не происходит, так как строка message_text.text = "!!!!!!!"; не исполняется. Ниже привожу код. Пробовал и закоментированный варианты, с тем же результатом. Если с 'wall.getById’ хотябы происходило событие onGetById то сейчас вобще мертво. Хотя любые другие методы которые не относятся к открытию со стены работают без проблем.
Теряюсь в догадках и прошу помощи.

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

if(wrapper.application.parameters.referrer=='wall_view_inline'||wrapper.application.parameters.referrer=='wall_view'){    wrapper.external.api('wall.get', {}, onGetById, onError);    //  var poster_id = wrapper.application.parameters.poster_id;//  wrapper.external.api('wall.get', {owner_id:poster_id}, onGetById, onError);} private function onGetById(data: Object):void{    message_text.text = "!!!!!!!";//    message_text.text = data[0].id; }

Re: Как получить данные через ‘wall.getById’ ?

Добавлено: 24 июн 2011, 22:00
Александр

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

message_text.text = '1'; if(wrapper.application.parameters.referrer=='wall_view_inline'||wrapper.application.parameters.referrer=='wall_view'){    message_text.text = '2';    wrapper.external.api('wall.get', {}, onGetById, onError);    message_text.text = '3';} private function onGetById(data: Object):void{    message_text.text = '4';}
Что в message_text ?

Re: Как получить данные через ‘wall.getById’ ?

Добавлено: 24 июн 2011, 22:09
Юрий
3

Re: Как получить данные через ‘wall.getById’ ?

Добавлено: 24 июн 2011, 22:31
Александр
wall.get вообще отправляется? Смотри в Charles.

Re: Как получить данные через ‘wall.getById’ ?

Добавлено: 24 июн 2011, 23:03
Юрий
Да запрос отправляется. Также в Charles получил ответ:
{"error":{"error_code":101,"error_msg":"Invalid application API ID","request_params":[{"key":"format","value":"json"},{"key":"method","value":"wall.get"},{"key":"owner_id","value":....и.т.д.
только я не понимаю что значит неверный API ID. библиотеку для связи с их API я использую взятую пару дней назад с контакта. и все остольные методы работают. Где и как он передается?

Re: Как получить данные через ‘wall.getById’ ?

Добавлено: 24 июн 2011, 23:17
Александр
Юрий
значит что id приложения, используемый в запросе - не верный.

Ты одновременно используешь контейнер и библиотеку APIConnection? Какой смысл?
wrapper.external.api не хватает?

Посмотри урок http://flapps.ru/forum/topic3180.html - там показано как использовать и wrapper.external.api, и wrapper.external.callMethod, и wrapper.addEventListener...

Если без контейнера, но с библиотекой, то http://flapps.ru/forum/topic1943.html