Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 30.06.2013, 19:57
pall92 вне форума Посмотреть профиль Отправить личное сообщение для pall92 Найти все сообщения от pall92
  № 1  
Ответить с цитированием
pall92

Регистрация: Jul 2012
Сообщений: 66
По умолчанию Странный ответ от api контакта

Здрасьте, большое желание уже убрать букву Т из заголовка... суть: я отправляю запрос контакту(любой) и отлавливаю как и положено ответ. собственно - он приходит. в нем есть нужные переменные.. но все они имеют дефолтные значения - 0, null или undefined!

проверил все что только можно - приложение запрашивает у пользователя все разрешения нужные для запроса, собственно сам запрос составлен верно, пользователь с указанным id(в данном примере запроса) - тоже установил приложение и в друзьях, id написан без ошибок)...
вообще даже не представляю что можно еще проверить..

гугл не помог - то ли я не могу кратко сформулировать вопрос, то ли еще что-то. короче говоря, вылезает все не по теме.

написал вконтакт, в поддержку. все что они смогли ответить - "Ваш вопрос рассматривается. К сожалению, необходимо немного подождать."

они не сказали даже на чьей стороне проблема.. ничего. дальнейшие попытки с ними связаться - впустую.
все бы ничего.. но уже почти месяц прошел с того момента как я написал вопрос в поддержку. работа стоит(

собственно код, на всякий случай:


Код AS3:
public static function getProfile():void
		{
			Main.output(userID + "loading profile \n");
			Main.THIS.wrapper.external.api('users.get', {uids: userID, fields: "photo_medium, sex"},getProfSuccess, getProfFail);
			//loading user vars
 
		}
		static function getProfSuccess(Data:Object):void
		{
			Main.output("loading profile2 complete");
			userGender = Data.sex;
 
			userPhoto = Data.photo_medium;
 
			userName = Data.first_name;
 
			userGender = Data.sex;
			Main.output('name=' + userName);
			Main.output('photo=' + userPhoto);
			Main.output('sex=' + userGender + '\n');
		}
		static function getProfFail(Data:Object):void
		{
			Main.output("loading profile failed");
 
		}

Старый 30.06.2013, 22:18
maxkar вне форума Посмотреть профиль Отправить личное сообщение для maxkar Найти все сообщения от maxkar
  № 2  
Ответить с цитированием
maxkar

Регистрация: Nov 2010
Сообщений: 497
А сниффером посмотреть структуру ответа, например?
Вас не смущает
Код:
users.get
// ...
Data.sex
? А если бы вы запрашивали двух пользователей? В общем, там не объект с данными пользователя приходит. А объект с данными пользователей. То ли map'а из id в пользователя, то ли массив, то ли объект с полем-массивом. По идее, в сниффере будет видно. И for'ом по объекту можно пройтись и посмотреть на его структуру.

Старый 30.06.2013, 23:06
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 3  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
Вконтакте отвечает массивом пользователей.
Код AS3:
private function userDataHandler(data: Object): void 
{
 
	account.uid = data[0].uid;
	account.full_name = data[0].first_name+" "+data[0].last_name;
}
__________________
return this...

Старый 30.06.2013, 23:12
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 4  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Мне кажется за месяц-то уже можно было эту мелкую проблему решить.
Если не понятно что там приходит, то можно хотя бы так было сделать
Код AS3:
trace(JSON.encode(Data));
И сразу стало бы понятно, что да, там действительно приходит массив.

Старый 01.07.2013, 01:44
pall92 вне форума Посмотреть профиль Отправить личное сообщение для pall92 Найти все сообщения от pall92
  № 5  
Ответить с цитированием
pall92

Регистрация: Jul 2012
Сообщений: 66
так и знал, что про нескольких пользователей скажут) я же даже пример прислал - там один пользователь... я знаю как действовать когда их больше - ибо в другом приложении, где я тестил работу с api - такой проблемы не было. хотя код такой же) если бы проблема была в этом - программа вызывала бы сообщения об ошибке(я прикрутил систему отладки для работы с api), как она собственно и вызывала пока я не разобрался с тем в каком формате приходит ответ. в том то и дело, что значения переменных я получаю. но они "пустые" О,о

за строчку trace(JSON.encode(Data)); - спасибо... не знал про такую штуку))) сейчас попробую

Добавлено через 19 минут
"trace(JSON.encode(Data));"

эммм... строчка не работает - пишет ошибку: не определено свойство JSON...

хотя в мануале написано что класс JSON находится в верхнем пакете О.о

Добавлено через 44 минуты
ой я дебиииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииил =D.

вобщем если кому понадобится -
ответ из контакта обычно приходит в массиве, да.

но в некоторых методах принцип другой:
в ответ приходит объект с массивом (data.response[i]), если запрашивалось больше одного "объекта", или просто data.var в случае если "объект" был один... вот это меня и запутало.. разные методы - разные типы ответов %)

звучит бредово, но про response мне собственно тех поддержка и говорила.. и тогда(давно) это помогло... и я все переправил под этот принцип =)

всем спасибо. сильно надо мной не смейтесь)
к слову - может кто-нибудь помочь с мелким вопросом (не стоит он новой темы)
короче - как обращаться к не статичной переменной главного класса из статичных методов О,о

знаю, что вроде бы должно быть где-то "мануальное" решение... но не нашел. а показывать людям код со всякими кракозябами типо "Main.THIS.var", где static var THIS = this =D - ужасно стыдно


впрочем это ерунда... спасибо за магию форума)


Последний раз редактировалось pall92; 01.07.2013 в 02:05.
Старый 01.07.2013, 07:08
olexandr вне форума Посмотреть профиль Отправить личное сообщение для olexandr Посетить домашнюю страницу olexandr Найти все сообщения от olexandr
  № 6  
Ответить с цитированием
olexandr
 
Аватар для olexandr

Регистрация: Aug 2007
Адрес: Ukraine, Kyiv
Сообщений: 643
Отправить сообщение для olexandr с помощью ICQ Отправить сообщение для olexandr с помощью MSN Отправить сообщение для olexandr с помощью Skype™
статичным методам не зачем обращаться к каким-бы то ни было свойствам главного класса
не встречал еще ситуации, чтобы статичным методам нужна была информация кроме той, которой передают непосредственно самому методу в виде параметров.
__________________
сайт, vk

Старый 01.07.2013, 08:09
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 7  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
короче - как обращаться к не статичной переменной главного класса из статичных методов О,о
Никак. Только создавая экземпляр. Статические свойства существуют на уровне класса, все остальное на уровне экземпляров.

Создать новую тему Ответ Часовой пояс GMT +4, время: 04:41.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 04:41.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.