Не могу получить псевдоним пользователя...

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в IFrame-приложениях (JavaScript, PHP и т.д)
PUNISHER
Сообщения: 138
Зарегистрирован: 10 ноя 2010, 21:20

Не могу получить псевдоним пользователя...

Сообщение PUNISHER »

Никак не могу получить псевдоним юзера. Имею код

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>аркен</title><link type="text/css" rel="StyleSheet" href="/css/style.css"><script src="js/jquery-1.4.2.min.js" type="text/javascript"></script><script src="js/script.js" type="text/javascript"></script><script src="http://vkontakte.ru/js/api/xd_connection.js?2" type="text/javascript"></script>  <script type="text/javascript" charset="cp1251" >window.onload = (function() {   // когда загрузится вся страница    VK.init(function() {    // инициализируем Vk API     // узнаём flashVars, переданные приложению GET запросом. Сохраняем их в переменную flashVars    var parts=document.location.search.substr(1).split("&");    var flashVars={}, curr;    for (i=0; i<parts.length; i++) {        curr = parts[i].split('=');        // записываем в массив flashVars значения. Например: flashVars['viewer_id'] = 1;        flashVars[curr[0]] = curr[1];    }            // вытаскиваем viewer_id и auth_key из полученных переменных        var viewer_id = flashVars['viewer_id'];    var auth_key = flashVars['auth_key'];          // отправляем post запрос, передаём viewer_id и auth_key    $.post('/conf.php',  // заменяем на адерс своего скрипта            { "viewer_id": viewer_id, "auth_key": auth_key },   // передаваемые значения            function(data){         // функция после выполнения передачи данных                $('result').html(data);                });    });});</script>
в котором я получаю uid и autkey с занесением в базу. Но как только я добавляю код получения данных пользователя все перестает работать. :( Подскажите как правильно добавить в код чтоб получить псевдоним юзера с занесением его в базу.
acpid
Сообщения: 76
Зарегистрирован: 02 июн 2010, 09:05

Re: Не могу получить псевдоним пользователя...

Сообщение acpid »

ты бы написал как делаешь получение..а то не видно где же ты ошибаешься. а вобще делай так, будет работать:

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

 <html><head><!-- подключаем xd_connection.js --><script src="http://vkontakte.ru/js/api/xd_connection.js?2" type="text/javascript"></script><!-- подключаем фреймворк для отправки запроса --><script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script><script type="text/javascript" charset="cp1251" >window.onload = (function() {   // когда загрузится вся страница     VK.init(function() {    // инициализируем Vk API     // узнаём flashVars, переданные приложению GET запросом. Сохраняем их в переменную flashVars    var parts=document.location.search.substr(1).split("&");        //переменная для никнейма    var nick;    var flashVars={}, curr;    for (i=0; i<parts.length; i++) {        curr = parts[i].split('=');        // записываем в массив flashVars значения. Например: flashVars['viewer_id'] = 1;        flashVars[curr[0]] = curr[1];    }        // получаем viewer_id и auth_key из полученных переменных    var viewer_id = flashVars['viewer_id'];    var auth_key = flashVars['auth_key'];     // выполняем запрос получения профиля, не забудь перечислить поля.возможно здесь ошибаешься    VK.api("getProfiles", {uids:viewer_id,fields:"nickname,first_name,last_name"}, function(data) {                 // обрабатываем полученные данные        nick = data.response[0].nickname;     //выполняем запрос к пхп файлу    //http://host.ru/file.php - поменяй на полный адрес к своему пхп файлу    //name и fame в ковычках после data: - это и есть параметры пост запроса к файлу,т.е.     //в файле будешь получать $_POST['name'] и $_POST['fame'] - первое имя,второе - фамилия    $.ajax({     type: "POST",     url: "http://host.ru/file.php",     data: "name=" + nick,    success: function(msg){         //сюда напиши код для удачной отправки например:         alert('Все сработало отлично');     },    error: function(a,b,err){    //сюда напиши код для неудачной отправки, например:         alert('Какойто косяк');     }   }) });});});</script></head><body></body></html> 
PUNISHER
Сообщения: 138
Зарегистрирован: 10 ноя 2010, 21:20

Re: Не могу получить псевдоним пользователя...

Сообщение PUNISHER »

возможна ли ошибка у меня в conf.php?

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

<?php// данные доступа к базе данных$db_host="localhost";       // обычно не нужно изменять$db_user="база";        // имя пользователя БД$db_password="пасс";        // пароль БД$db_name = "имя";      // имя БД$table_name = "stat";       // имя таблицы статистики. Если вы не меняли его в запросе, создающем БД, то и здесь менять его не надо // данные приложения$app_id = 'ид'; // id приложения$api_secret = 'тут ключ'; // защищенный ключ приложения  $auth_key  = $_POST['auth_key'];$viewer_id = $_POST['viewer_id'];$name = $_POST['name'];$fame = $_POST['fame'];  $pic = $_POST['photo'];   $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`, `login`, `password`) VALUES ("'.$viewer_id.'","'.time().'","'.$first_name.'","'.$auth_key.'") ON DUPLICATE KEY UPDATE  `visits` = (`visits`+1), `last_date`="'.time().'", `login`="'.$first_name.'", `password`="'.$auth_key.'";';    $sql = @mysql_query($query);    echo "OK";}?> 
acpid
Сообщения: 76
Зарегистрирован: 02 июн 2010, 09:05

Re: Не могу получить псевдоним пользователя...

Сообщение acpid »

поменяй пост на гет и передай чтоибудь в параметрах.посмгтри что вернет скрипт и запишет ли в базу



примере что я написал поставь alert(msg) там где удачная отправка.посмотри что выдаст.
PUNISHER
Сообщения: 138
Зарегистрирован: 10 ноя 2010, 21:20

Re: Не могу получить псевдоним пользователя...

Сообщение PUNISHER »

примере что я написал поставь alert(msg) там где удачная отправка.посмотри что выдаст.
вообще никак и в базу не пишет. просто белый экран...нет ни ошибки ни записи.
acpid
Сообщения: 76
Зарегистрирован: 02 июн 2010, 09:05

Re: Не могу получить псевдоним пользователя...

Сообщение acpid »

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

т.е. вот так:

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

 <?php// данные доступа к базе данных$db_host="localhost";       // обычно не нужно изменять$db_user="база";        // имя пользователя БД$db_password="пасс";        // пароль БД$db_name = "имя";      // имя БД$table_name = "stat";       // имя таблицы статистики. Если вы не меняли его в запросе, создающем БД, то и здесь менять его не надо // данные приложения$app_id = 'ид'; // id приложения$api_secret = 'тут ключ'; // защищенный ключ приложения  $auth_key  = $_POST['auth_key'];$viewer_id = $_POST['viewer_id'];$name = $_POST['name'];$fame = $_POST['fame'];  $pic = $_POST['photo'];   $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`, `login`, `password`) VALUES ("'.$viewer_id.'","'.time().'","'.$first_name.'","'.$auth_key.'") ON DUPLICATE KEY UPDATE  `visits` = (`visits`+1), `last_date`="'.time().'", `login`="'.$first_name.'", `password`="'.$auth_key.'";';    $sql = @mysql_query($query);    echo "OK";/*}*/?>  
PUNISHER
Сообщения: 138
Зарегистрирован: 10 ноя 2010, 21:20

Re: Не могу получить псевдоним пользователя...

Сообщение PUNISHER »

не думаю. Так как в моем первом коде "index.php" uid, auth key передаются и в базу заносятся с добавлением визитов.
А если в добавляю в index.php получение VK.api("getProfiles") то сразу ничего не работает и в базу не пишется :?
Вообще немогу понять что не так... :(
acpid
Сообщения: 76
Зарегистрирован: 02 июн 2010, 09:05

Re: Не могу получить псевдоним пользователя...

Сообщение acpid »

VK.api("getProfiles") - это в файле в iframe который? должно быть там, а не в скрипте который в базу пишет.т.е. не в conf.php
ну и опять же убери проверку как я показал на время. я сам проверял - все работает.
PUNISHER
Сообщения: 138
Зарегистрирован: 10 ноя 2010, 21:20

Re: Не могу получить псевдоним пользователя...

Сообщение PUNISHER »

acpid писал(а):VK.api("getProfiles") - это в файле в iframe который?
да. главная страница index.php
acpid писал(а):ну и опять же убери проверку как я показал на время. я сам проверял - все работает.
ничего не изменило.....

Ничего если я тестирую на тестовом приложении которое я не посылал на одобрение? Хотя бредово все остальное получает а как get api profiles ставлю вообще ничего не обновляет. В настройках приложения стоит получение вики разметок..... :(
PUNISHER
Сообщения: 138
Зарегистрирован: 10 ноя 2010, 21:20

Re: Не могу получить псевдоним пользователя...

Сообщение PUNISHER »

Стоп....ща получилось окошко что все сработало. но он не записал в базу.....
Ответить