Метод (getCountries) помогите правильно построить запрос :(

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в IFrame-приложениях (JavaScript, PHP и т.д)
Ответить
Moonk1d
Сообщения: 3
Зарегистрирован: 28 фев 2011, 23:45

Метод (getCountries) помогите правильно построить запрос :(

Сообщение Moonk1d »

Пытаюсь по полученному номеру из getProfiles получить название страны.

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

 <script type="text/javascript" charset="cp1251" >$(document).ready(function(){ // когда страница загрузится    VK.init(function()    {        // получаем flashVars        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'];    var auth_key = flashVars['auth_key'];    var api_id = flashVars['api_id'];    var secret = flashVars['secret'];    var v = '3.0';    var country=2; // cid полученной страны    var sig = calcMD5(viewer_id + 'api_id=' + api_id + 'cids=' + country + 'method=getCountries' + 'v=3.0' + secret);// выполняем запрос получения названия страны    VK.api("getCountries", {api_id:api_id, cids:country, sig:sig,v:v}, function(data)        {        var country_name =  data.response[0].name;        document.getElementById('test').innerHTML = country_name;        });     });});</script> 
Вот что пишет в фаербаге - error_msg="Incorrect signature: sid & secret authorization".
Уже убил кучу времени, а топчусь на одном месте.
Нужна помощь :oops: !
Аватара пользователя
alexei
Разработчик
Разработчик
Сообщения: 836
Зарегистрирован: 21 янв 2010, 19:44

Re: Метод (getCountries) помогите правильно построить запрос :(

Сообщение alexei »

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

    VK.api("getCountries", {cids:country}, function(data)        {        var country_name =  data.response[0].name;        document.getElementById('test').innerHTML = country_name;        });
Упрощайте.
Moonk1d
Сообщения: 3
Зарегистрирован: 28 фев 2011, 23:45

Re: Метод (getCountries) помогите правильно построить запрос :(

Сообщение Moonk1d »

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

Но почему в документации требуется еще куча полей(( я как новичок старался делать все по ней .... ???
Moonk1d
Сообщения: 3
Зарегистрирован: 28 фев 2011, 23:45

Re: Метод (getCountries) помогите правильно построить запрос :(

Сообщение Moonk1d »

Возникла ошибка, которая абсолютно не поддается моему пониманию. Need help :oops:

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

 <script type="text/javascript" charset="cp1251" >$(document).ready(function(){ // когда страница загрузится    VK.init(function()    {        // получаем flashVars        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];            }// вытаскиваем viewer_id и auth_key из полученных переменных    var viewer_id = flashVars['viewer_id'];// обьявляем переменные в которые будем писать данные полученные в запросе.    var first_name;    var last_name;    var country;// выполняем запрос получения профиля    VK.api("getProfiles", {uids:viewer_id,fields:"country,photo_big"}, function(data) {        // обрабатываем полученные данные        // выводим имя и фамилию в блок user_info        first_name = data.response[0].first_name;        last_name  = data.response[0].last_name;        country    = data.response[0].country;        document.getElementById('user_info').innerHTML = first_name + ' ' + last_name + '<br />';        // создаем img, для отображения аватарки        var image=document.createElement('img');        // из полученных данных берем ссылку на фото        image.src=data.response[0].photo_big;        // добавляем img в блок user_info        user_info.appendChild(image);    });        VK.api("getCountries", {cids:country}, function(data)        {        // обрабатываем полученные данные               // выводим название страны в блок test        var country_name =  data.response[0].name;        document.getElementById('test').innerHTML = country_name;        });    });});</script> 
Суть ошибки:

Текст ошибки : Object { error_code=115, error_msg="Invalid country id", request_params=}

Получается сюда {cids:country} не подставляется "2" которую мы получили в результате запроса getProfiles.
Но если {cids:country} вместо country подставить константу 2 или создать переменную var test = 2; и подставить {cids:test} запрос успешно выполняется.

И еще 1 маленький вопросик почему фаербаг ругается на эту строчку

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

 user_info.appendChild(image); 
и не отображает изображение.
Ответить