Страница 1 из 3
Вывод при компиляции
Добавлено: 18 июл 2011, 12:38
dr1emaver
Здравствуйте, при компиляции приложения ошибок не было выявлено, но в выводе написано :
Предупреждение. Нет библиотек, связанных в качестве общих библиотек времени выполнения (Runtime shared library, RSL), так как в настройках публикации выбрано: Экспортировать SWC-файл
{"error":{"error_code":101,"error_msg":"Invalid application API ID","request_params":[{"key":"format","value":"JSON"},{"key":"fields","value":"photo_big"},{"key":"sig","value":"0c9c7cda764df075cead3a4a413c9ccf"},{"key":"sid","value":"null"},{"key":"uids","value":"undefined"},{"key":"method","value":"getProfiles"},{"key":"v","value":"3.0"},{"key":"api_id","value":"NaN"}]}}
{"error":{"error_code":101,"error_msg":"Invalid application API ID","request_params":[{"key":"method","value":"friends.getAppUsers"},{"key":"format","value":"JSON"},{"key":"api_id","value":"NaN"},{"key":"sig","value":"29a39f1cb25d2cef9a48cbf8913755c5"},{"key":"sid","value":"null"},{"key":"v","value":"3.0"}]}}
Загружая в контакт приложение работает, но не работает связь с базой данных, соответсвенно не передает и не выводит информацию от туда. Подскажите пожалуйста.
Re: Вывод при компиляции
Добавлено: 18 июл 2011, 20:41
dr1emaver
Проверил, через charles - запрос подается в база данных, но почему то вывода нету.. В чем может быть проблема?
Сообственно код :
Код: Выделить всё
private function getallnews(e:Event):void { var stat_loader:URLLoader = new URLLoader(); var stat_request:URLRequest=new URLRequest("http://адрес сайта/news.php");// заменяем на ссылку к вашему скрипту stat_request.method=URLRequestMethod.POST; // добавление параметров в запрос var stat_vars:URLVariables = new URLVariables(); stat_vars['auth_key']=auth_key; stat_vars['viewer_id']=viewer_id;// ID просматривающего приложение stat_request.data=stat_vars; // выполнение запроса stat_loader.addEventListener(Event.COMPLETE, newslist); stat_loader.load(stat_request); } private function newslist(e:Event):void { if (listbool==1) { var temp=scene.numChildren for(var j=0;scene.numChildren!=0;j) { scene.removeChildAt(j); list.removeAll(); } } else { listbool=1; } var b; var h=e.target.data; h=h.split("_"); for (var i = 0; i < (h.length-1); i++) { b=h[i].split(":"); dp.addItem({pid:b[0], uid:b[1], Name:b[2], News:b[3], Information:b[6] , date:b[4]}); } list.x=220; list.y=125; list.resizableColumns=false; list.setSize(500,600); list.columns=["Name", "News", "Information","date"]; list.getColumnAt(3).width=80; list.getColumnAt(2).width=50 list.getColumnAt(1).width=170; list.getColumnAt(0).width=120; list.dataProvider=dp; list.doubleClickEnabled=true; list.addEventListener(ListEvent.ITEM_CLICK,goon); scene.addChild(list); }
Re: Вывод при компиляции
Добавлено: 18 июл 2011, 21:03
Александр
crossdomain.xml есть?
В Adobe Flash слева сверху есть кнопка "формат текста". Если тебе удобно работать с неотформатированным кодом, то на форум всё равно лучше выкладывать отформатированный код.
Re: Вывод при компиляции
Добавлено: 18 июл 2011, 21:04
dr1emaver
ну да, с таким содержанием..
<cross-domain-policy>
<allow-access-from domain="*.vkontakte.ru" />
<allow-access-from domain="*.vk.com" />
</cross-domain-policy>
Re: Вывод при компиляции
Добавлено: 18 июл 2011, 21:07
Александр
dr1emaver писал(а):но почему то вывода нету..
Где вывода нет? Сервер ничего не выводит? Тогда нужно в серверных скриптах искать проблему.
Сервер выводит, а во флеше не выводит? Тогда вместо всего этого непонятного кода в функции newslist, сделай вывод в какое-то поле и посмотри есть ли ответ.
Re: Вывод при компиляции
Добавлено: 18 июл 2011, 21:14
dr1emaver
во флэше не выводит...У меня такой вопрос, а если в php скрипте и в main.as id приложения не совпадают - это может быть причиной не вывода ?
Re: Вывод при компиляции
Добавлено: 18 июл 2011, 22:00
Александр
dr1emaver
Если auth_key не совпадает, то конечно может быть в этом причина. Но если ты пишешь, что php выводит, то вряд ли из-за этого.
То что тебе стоит сделать я написал в своём предыдущем сообщении.
Re: Вывод при компиляции
Добавлено: 19 июл 2011, 14:51
dr1emaver
Проблему решил, но возникла следующая. В базу данных отсылается имя пользователя, зашедшего в приложение. Но дело в том, что почти всегда оно отображается в базе как undefined. так оно сохраняется при например ссылке на приложение
http://vkontakte.ru/app2414343_12444343 к примеру. Но если добавить к этому адресу
http://vkontakte.ru/app2414343_12444343?ref=9 то в базе данных отобразиться реальное имя и фамилия. С чем это связано ? Причем через Charles точно такая же история. Выложу часть кода.
Код: Выделить всё
public class Main extends Sprite {private var api_id:Number = номер ;// ID приложения private var url_loader:URLLoader; private var url_request:URLRequest; private var viewer_id; // id просматривающего приложение private var secret:String; // secret для генерации сигнатуры private var sid:String; // id сессии private var api_url:String; // адрес API сервиса private var auth_key; // аутефикационный ключprivate var nameuser; public function Main():void { // получаем данные из flashVars // id просматривающего приложение flashVars = stage.loaderInfo.parameters as Object; viewer_id = flashVars['viewer_id']; // secret для генерации сигнатуры secret = flashVars['secret']; // id сессии sid = flashVars['sid']; // адрес API-сервиса api_url = flashVars['api_url']; auth_key = flashVars['auth_key']; // вызываем функцию получения профиля пользователя, просматривающего приложение var VK:APIConnection = new APIConnection(flashVars); //getProfile(viewer_id); VK.api('getProfiles',{ uids: viewer_id,fields:'first_name,last_name,photo_big'},onComplete, onError); //uenter(); VK.api('friends.getAppUsers', {}, uenter, onError); } private function onComplete(data: Object):void { nameuser=data[0]['first_name']+ " " +data[0]['last_name']; // получение переменной nameuser ...}private function uenter(data: Object):void { var stat_loader:URLLoader = new URLLoader(); var stat_request:URLRequest=new URLRequest("адрес сайта/name.php");// заменяем на ссылку к вашему скрипту //выбираем способ отправки stat_request.method=URLRequestMethod.POST; // добавление параметров в запрос ( создаем переменные для отправки) var stat_vars:URLVariables = new URLVariables(); stat_vars['auth_key']=auth_key; //LoaderInfo(root.loaderInfo).parameters.auth_key;// auth_key из FlashVars stat_vars['viewer_id']=viewer_id;// ID просматривающего приложение stat_vars['name']= nameuser; // имя //Потом задаем эти переменные в экземпляр класса URLRequest stat_request.data=stat_vars; //Загружаем экземпляром класса URLLoader все данные, указанные в URLRequest на адрес php скрипта, указанном выше stat_loader.load(stat_request); } }
Re: Вывод при компиляции
Добавлено: 19 июл 2011, 19:57
Александр
dr1emaver
Учи ActionScript. Про события прочитай...
Код: Выделить всё
VK.api('getProfiles',{ uids: viewer_id,fields:'first_name,last_name,photo_big'},onComplete, onError); //uenter(); VK.api('friends.getAppUsers', {}, uenter, onError);
Запускаются одновременно. А ты думаешь что по очереди.
Re: Вывод при компиляции
Добавлено: 19 июл 2011, 20:17
dr1emaver
Если они выполняются одновременно, то получается, что строчку
Код: Выделить всё
nameuser=data[0]['first_name']+ " " +data[0]['last_name'];
надо перенести в функцию uenter?