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

api_result возвращает undefined

Добавлено: 21 ноя 2011, 21:07
AlexLucas
Добрго времени суток.
Есть такой кусок кода :

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

 function onAddedToStage(e: Event): void {             wrapper = Object(parent.parent);                                   if (wrapper.application.parameters) {                                       var params:Object = wrapper.application.parameters;                                     userId = params.viewer_id;                    trace(params.api_result);      //undefined                      uids = JSON.decode(params.api_result);     //  и естественно TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".                }......        
А должно возвращать хоть что-то : http://vkontakte.ru/developers.php?id=-1_27971896&s=1.

И ещё, у меня флэш приложение в обёртке, из api у меня следующие файлы :

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

 -api  -serialization    +json   //классы для работы с json  DataProvider.as  MD5.as-Server  // то что на сервере лежит  CurlHandler.class.php  MySQL.class.php  VkApi.class.php  index.php 
Давно (где-то год) не обновлялись файлы, вопрос глупый, но всё же - где скачать последний архив с api (как я понял) для php?

Re: api_result возвращает undefined

Добавлено: 21 ноя 2011, 22:05
Александр

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

trace(wrapper.application.parameters.viewer_id);
Тоже undefined ?
AlexLucas писал(а):Давно (где-то год) не обновлялись файлы, вопрос глупый, но всё же - где скачать последний архив с api (как я понял) для php?
http://vkontakte.ru/developers.php?oid= ... %D1%81_API - внизу официальные классы.

Re: api_result возвращает undefined

Добавлено: 21 ноя 2011, 23:32
AlexLucas

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

trace(wrapper.application.parameters.viewer_id);
выдаёт нормально, но при

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

trace(wrapper.application.parameters.api_result);
опять undefined.

И ещё - только что скачал и обновил классы - есть вопрос насчёт DataProvider - раньше у него была куча строковых статиков типа

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

  public static var GET_VARIABLE: String    = "getVariable";    public static var PUT_VARIABLE: String    = "putVariable";    public static var GET_MESSAGES: String    = "getMessages";...................dataProvider = new DataProvider(.......);// вызов главного метода request делался такdataProvider.request(DataProvider.GET_USER_BALANCE, {                onComplete: function(data)                {..... }});  
Сейчас их нет. Как их заменить в запросах? Просто писать

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

dataProvider.request("getVariable", {onComplete: function(data){..... }});
?
Там ещё один странный параметр api_sid, если можете, приведите инициализацию DataProvider и вызов его метода request.

Re: api_result возвращает undefined

Добавлено: 22 ноя 2011, 20:29
Александр
AlexLucas
В исходном коде у api_result есть значение? Это же результат Первого запроса к API из настроек?

Это другой класс, для Вконтакте API 3.0. Старая версия 2.0 требовала секретный ключ из настроек приложения. Версия 3.0 работает по другому.
Нужно не просто заменить файлы и поправить пару строчек, а полностью пересмотреть работу приложения с методами api. Методы с текущими классами вызываются по другому. Смотри примеры в разделе уроков.

Re: api_result возвращает undefined

Добавлено: 23 ноя 2011, 23:11
AlexLucas
Я так понял уже не используется класс DataProvider, а вместо этого работают с APIConnection, вроде там уже происходит работа с DataProvider?

Re: api_result возвращает undefined

Добавлено: 24 ноя 2011, 20:48
Александр
AlexLucas
Чтобы взаимодействовать с ВКонтакте API, не нужны никакие DataProvider и APIConnection. Посмотри урок http://flapps.ru/forum/topic992.html
DataProvider и APIConnection - упрощают взаимодействие с api. Это разные классы и использовать их нужно по разному.
APIConnection не является в прямом смысле "заменой" DataProvider. Это лишь класс, выполняющий аналогичную вспомогательную функцию.