Вывод информации о пользователе, users.get -> undefined

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в IFrame-приложениях (JavaScript, PHP и т.д)
Ответить
Krubbs
Сообщения: 3
Зарегистрирован: 14 ноя 2012, 22:40

Вывод информации о пользователе, users.get -> undefined

Сообщение Krubbs »

Собственно, вот код:

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

            VK.init(function()                {                    var parts=document.location.search.substr(1).split("&");                    var flashVars={}, curr;                    for (i=0; i<parts.length; i++)                     {                        curr = parts[i].split('=');                        flashVars[curr[0]] = curr[1];                    }                    var viewer_id = flashVars['viewer_id'];                    alert(viewer_id);                    var user_name;                    VK.api("users.get",{uids:viewer_id} ,function (data)                    {                        user_name = data.response.first_name;                                            });                    alert(user_name);                });
Первый алерт срабатывает верно, выдавая ID юзера, просматривающего приложение. Однако с функцией users.get происходит что то невероятное: второй алерт упорно выдает мне Undefined, хотя код вроде как написан верно... Какие могут быть предположения, в чем косяк и как мне вытянуть имя и фамилию?
Serge
WEB Team
WEB Team
Сообщения: 520
Зарегистрирован: 04 мар 2011, 21:55

Re: Вывод информации о пользователе, users.get -> undefined

Сообщение Serge »

Krubbs

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

            VK.init(function()                {                    var parts=document.location.search.substr(1).split("&");                    var flashVars={}, curr;                    for (i=0; i<parts.length; i++)                     {                        curr = parts[i].split('=');                        flashVars[curr[0]] = curr[1];                    }                    var viewer_id = flashVars['viewer_id'];                    alert(viewer_id);                    var user_name;                    VK.api("users.get",{uids:viewer_id} ,function (data)                    {                        user_name = data.response[0].first_name;                        alert(user_name);                    });                }); 
А вот так сработает правильно.
Причина в том, что яваскрипт выполняет код синхронно, алерт запустится раньше, чем от вк будут получены данные.

UPD: Еще вроде data.response[0].first_name
Krubbs
Сообщения: 3
Зарегистрирован: 14 ноя 2012, 22:40

Re: Вывод информации о пользователе, users.get -> undefined

Сообщение Krubbs »

Спасибо огромное, все заработало!

P.S: сказочный яваскрипт... как тяжко с ним после сишарпа
Ответить