Вывод при компиляции

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в Flash-приложениях (ActionScript)
dr1emaver
Сообщения: 78
Зарегистрирован: 16 июл 2011, 20:08

Вывод при компиляции

Сообщение 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"}]}}
Загружая в контакт приложение работает, но не работает связь с базой данных, соответсвенно не передает и не выводит информацию от туда. Подскажите пожалуйста.
dr1emaver
Сообщения: 78
Зарегистрирован: 16 июл 2011, 20:08

Re: Вывод при компиляции

Сообщение 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);       }         
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Вывод при компиляции

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

crossdomain.xml есть?

В Adobe Flash слева сверху есть кнопка "формат текста". Если тебе удобно работать с неотформатированным кодом, то на форум всё равно лучше выкладывать отформатированный код.
dr1emaver
Сообщения: 78
Зарегистрирован: 16 июл 2011, 20:08

Re: Вывод при компиляции

Сообщение dr1emaver »

ну да, с таким содержанием..
<cross-domain-policy>
<allow-access-from domain="*.vkontakte.ru" />
<allow-access-from domain="*.vk.com" />
</cross-domain-policy>
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Вывод при компиляции

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

dr1emaver писал(а):но почему то вывода нету..
Где вывода нет? Сервер ничего не выводит? Тогда нужно в серверных скриптах искать проблему.
Сервер выводит, а во флеше не выводит? Тогда вместо всего этого непонятного кода в функции newslist, сделай вывод в какое-то поле и посмотри есть ли ответ.
dr1emaver
Сообщения: 78
Зарегистрирован: 16 июл 2011, 20:08

Re: Вывод при компиляции

Сообщение dr1emaver »

во флэше не выводит...У меня такой вопрос, а если в php скрипте и в main.as id приложения не совпадают - это может быть причиной не вывода ?
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Вывод при компиляции

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

dr1emaver
Если auth_key не совпадает, то конечно может быть в этом причина. Но если ты пишешь, что php выводит, то вряд ли из-за этого.
То что тебе стоит сделать я написал в своём предыдущем сообщении.
dr1emaver
Сообщения: 78
Зарегистрирован: 16 июл 2011, 20:08

Re: Вывод при компиляции

Сообщение 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);                                 } } 
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Вывод при компиляции

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

dr1emaver
Учи ActionScript. Про события прочитай...

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

            VK.api('getProfiles',{ uids: viewer_id,fields:'first_name,last_name,photo_big'},onComplete, onError);            //uenter();            VK.api('friends.getAppUsers', {}, uenter, onError);
Запускаются одновременно. А ты думаешь что по очереди.
dr1emaver
Сообщения: 78
Зарегистрирован: 16 июл 2011, 20:08

Re: Вывод при компиляции

Сообщение dr1emaver »

Если они выполняются одновременно, то получается, что строчку

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

nameuser=data[0]['first_name']+ " " +data[0]['last_name'];
надо перенести в функцию uenter?
Ответить