Создание базы пользователей приложения и ведение статистики

Только готовые уроки по использованию ВКонтакте API. Flash + PHP + API. НЕ IFrame!
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Создание базы пользователей приложения и ведение статистики

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

Minimalgift

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

<cross-domain-policy><allow-access-from domain="*.vkontakte.ru"/><allow-access-from domain="*.vk.com"/><allow-access-from domain="*.userapi.com"/></cross-domain-policy>
AlexQW
Сообщения: 16
Зарегистрирован: 17 апр 2012, 21:48

Re: Создание базы пользователей приложения и ведение статистики

Сообщение AlexQW »

Если через мозилу запускать приложение то добавляются посещения, а через оперу нет. Подскажите, пожалуйста, в чём может быть дело?
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Создание базы пользователей приложения и ведение статистики

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

AlexQW
Приложение отправляет данные серверу? Это можно увидеть с помощью Charles.
AlexQW
Сообщения: 16
Зарегистрирован: 17 апр 2012, 21:48

Re: Создание базы пользователей приложения и ведение статистики

Сообщение AlexQW »

Александр писал(а):AlexQW
Приложение отправляет данные серверу? Это можно увидеть с помощью Charles.
Когда с Charles запускаю то добавляются посещения. Charles выключаю - перестают добавляться))
С оперой наверное беда какая то.
Fedya
Сообщения: 174
Зарегистрирован: 21 июл 2012, 19:56

Re: Создание базы пользователей приложения и ведение статистики

Сообщение Fedya »

Не добавляется в базу ничего..
Проверяю charles, но не знаю куда смотреть :)
включил этот перехват, а там только

Изображение
Изображение
Casperovskii
Сообщения: 429
Зарегистрирован: 22 июн 2012, 17:50

Re: Создание базы пользователей приложения и ведение статистики

Сообщение Casperovskii »

Таки надо обращаться к php-скрипту:
Код на флеш:

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

private function giveStat():void {            // создание запроса            var stat_loader:URLLoader = new URLLoader();            var stat_request:URLRequest=new URLRequest("http:/***/ForVK/statistic.php");// заменяем на ссылку к вашему скрипту            stat_request.method=URLRequestMethod.POST;            // добавление параметров в запрос            var stat_vars:URLVariables = new URLVariables();            stat_vars['auth_key']= auth_key;// auth_key из FlashVars            stat_vars['viewer_id']= viewer_id;// ID просматривающего приложение            stat_request.data=stat_vars;            // выполнение запроса            stat_loader.load(stat_request);        }
Код php-скрипта:

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

  <?php    // данные доступа к базе данных    $db_host="localhost";       // обычно не нужно изменять    $db_user="888";        // имя пользователя БД    $db_password="8885";        // пароль БД    $db_name = "p8888";      // имя БД    $table_name = "stat";       // имя таблицы статистики. Если вы не меняли его в запросе, создающем БД, то и здесь менять его не надо         // данные приложения    $app_id = 888'; // id приложения    $api_secret = '888'; // защищенный ключ приложения              $auth_key  = $_POST['auth_key'];    $viewer_id = $_POST['viewer_id'];         $real_key = md5($app_id."_".$viewer_id."_".$api_secret);    if ($auth_key == $real_key){        // соединение с БД        mysql_connect($db_host, $db_user, $db_password) or die (mysql_error());        mysql_select_db($db_name) or die (mysql_error());        mysql_query("SET NAMES 'utf8'");             // Выполняем запрос: если пользователя с таким id ещё нет в БД, то добавляем, если есть, то обновляем запись, прибавляя одно посещение (`visits` = (`visits`+1))        $query = 'INSERT INTO `'.$table_name.'` (`uid`, `last_date`) VALUES ("'.$viewer_id.'","'.time().'") ON DUPLICATE KEY UPDATE  `visits` = (`visits`+1), `last_date`="'.time().'";';        $sql = mysql_query($query);        echo "OK";    }    ?> 
Fedya
Сообщения: 174
Зарегистрирован: 21 июл 2012, 19:56

Re: Создание базы пользователей приложения и ведение статистики

Сообщение Fedya »

да да, это все я сделал
засунул код в swf
обновляю приложение, но в базе пусто, а чарлез ничего не ловит, видимо

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

package {    import flash.net.*;    import flash.display.*;     public class Main extends Sprite {        public function Main():void {            // создание запроса            var stat_loader:URLLoader = new URLLoader();            var stat_request:URLRequest=new URLRequest("http://fedorefimenko.ru/flash/index.php");// заменяем на ссылку к вашему скрипту            stat_request.method=URLRequestMethod.POST;            // добавление параметров в запрос            var stat_vars:URLVariables = new URLVariables();            stat_vars['auth_key']=LoaderInfo(root.loaderInfo).parameters.auth_key;// auth_key из FlashVars            stat_vars['viewer_id']=LoaderInfo(root.loaderInfo).parameters.viewer_id;// ID просматривающего приложение            stat_request.data=stat_vars;            // выполнение запроса            stat_loader.load(stat_request);        }    }}
Fedya
Сообщения: 174
Зарегистрирован: 21 июл 2012, 19:56

Re: Создание базы пользователей приложения и ведение статистики

Сообщение Fedya »

При локальном тестировании запрос делается, а если загрузить в контакт, то никакого запроса не отсылается, в чем может быть проблема?

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

package {    import flash.net.*;    import flash.display.*;    import vk.APIConnection;    import vk.events.*;        public class Main extends Sprite {                    public var api_id:Number;            public var viewer_id:Number;            public var sid:String;            public var secret:String;            public var auth_key:String;                                    public function Main() {                        var flashVars:Object = stage.loaderInfo.parameters as Object;            // присваиваем переменным значения из flashVars            //api_id = flashVars['api_id'];            viewer_id = 1;            //sid = flashVars['sid'];            //secret = flashVars['secret'];            auth_key = '1';                         var VK:APIConnection = new APIConnection(flashVars);                        // создание запроса            var stat_loader:URLLoader = new URLLoader();            var stat_request:URLRequest=new URLRequest("http://fedorefimenko.ru/forflash/index.php");// заменяем на ссылку к вашему скрипту            stat_request.method=URLRequestMethod.POST;            // добавление параметров в запрос            var stat_vars:URLVariables = new URLVariables();            stat_vars['auth_key']= auth_key;// auth_key из FlashVars            stat_vars['viewer_id']= viewer_id;// ID просматривающего приложение            stat_request.data=stat_vars;            // выполнение запроса            stat_loader.load(stat_request);        }    }}
Ответить