Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   Показать имя пользователя с установленным приложением. AS2. (http://www.flasher.ru/forum/showthread.php?t=136667)

ALIEN XIII 23.02.2010 02:57

Показать имя пользователя с установленным приложением. AS2.
 
Ребят, помогите, плиз, ещё раз)

Хочу отобразить в приложении Имя и Фамилию пользователя, к которому заходят на страницу. С "viewer_id" всё понятно, отображает правильно. Но нужно действие, вызывающее обратную функцию. Посмотрел на "user_id".
Цитата:

user_id - это id пользователя, со страницы которого было запущено приложение. Если приложение запущено не со страницы пользователя, то значение равно 0.
Почти то, что нужно, но как перевести это в Ф.И. пользователя с установленным приложением, а не выводить свой id?

Вот, к примеру:
Код AS1/AS2:

idname.text += this.firstChild.firstChild.nodeValue;

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

Надеюсь, объяснил понятно))

udaaff 23.02.2010 14:06

Получайте через getProfiles. Какие проблемы?

ALIEN XIII 23.02.2010 14:47

Да проблем бы не было, если бы по API на AS2 было больше информации.
Кругом используется третий, который пока мне совершенно не нужен..).

То есть, насколько я понимаю, из getProfiles мне понадобятся следующие функции: first_name, last_name (а так же может быть и nickname).

Каким способом нужно всё это выполнить через getProfiles? Что в моём понимании неправильно?

Код AS1/AS2:

            var fields:Array=new Array ();
            fields=['first_name,last_name,nickname'];
            getProfiles(fields);

Можете поподробней объяснить, что я делаю не так, и как правильно надо делать?

udaaff 23.02.2010 14:50

Почитайте документацию по методу getProfiles. Какие там необходимо передавать параметры. Как составлять сигнатуру (если не знаете) тоже почитайте.

Из трех строчек кода, не несущего никакой смысловой нагрузки, не понятно, что у вас правильно, а что нет.

ALIEN XIII 23.02.2010 15:41

Вот, если честно, сколько я не читал, знаний у меня почему-то по сути так и не прибавилось, примеры использования кода для ActionScript3 меня пугают, да и гугл молчит.
Просто с создание интернет приложения опыта не имею, раньше как-то ограничивался простыми игрушками.
Не знаю, зачем мне это API понадобилось, но раз уж влез, хотя бы завершить начатое.

В общем делаю стандартно:

Код AS1/AS2:

import aclass.DataProvider;// тут как обычно подгружается DataProvider.as
 
 
idname.multiline = true;
var aTable:Array = new Array();
var dataProvider = new DataProvider();
            var fields:Array=new Array();
            fields=['first_name,last_name,nickname'];
 
dataProvider.getVar(1281, function(success:Boolean) {
if (success) {
if (this.firstChild.nodeName=='response')
idname.text += "Стена пользователя с id" + user_id + "(" + getProfiles(fields) + "). Запустил пользователь: "  + this.firstChild.firstChild.nodeValue;
else idname.text="Ошибка: "+this.firstChild.firstChild.nodeValue;
}
else idname.text="соединение прервано.";
})

В итоге на странице приложения высвечивается надпись:
Цитата:

Стена пользователя с id1234567890(first_name,last_name,nickname) . Запустил пользователь: Unknown User
Что тут надо правильно построить, чтобы "first_name,last_name,nickname" заменились на реальные данные?

PS: Или достаточно в DataProvider прописать:
Код AS1/AS2:

   public function getProfiles(uids:Array, onComplete:Function)
 {
  _sendRequest("getProfiles", {params:{uids:uids}, onComplete: onComplete})
 }

и подгружать уже прочто через "first_name,last_name"?

hopmaster 23.02.2010 18:40

Возможно тебе поможет первый запрос к Эйпи
http://vkontakte.ru/pages.php?o=-1&p...прос%20к%20API
Там как раз пример с getProfiles, если я тебя правильно понял конечно...
а уже в переменной api_result будут результаты запроса.

ALIEN XIII 23.02.2010 18:55

А можете как-нибудь поподробнее описать?
Мне всего-то имя нужно вывести...
Я уже вторую неделю вглядываюсь в то, что предлагает контакт, но мало чего могу понять, там всё очень поверхностно описано, даже на лёгких функциях.
А где не спрошу, везде на эту документацию посылают.
Уже неделю проект простаивается =(

hopmaster 23.02.2010 19:39

Значиться рассказываю, на пальцах показываю)))

1) Зайди на страницу редактирования приложения вконтакте.
2) Найди поле (внизу) под названием: "первый запрос к API"
3) Впиши в поле: method=getVariable&key=1281&v=2.0
4) Сохраните

5)В приложении, в переменной api_result будет хранится:<?xml version="1.0" encoding="utf-8"?>
<response>Имя Фамилия</response>

И не нужно никаких классов)

Так.... это было для того КТО просматривает. А для того у КОГО проссматривают будет:
method=getProfiles&uids={user_id}&fields=first_name,last_name,nickname&v=2.0

ALIEN XIII 23.02.2010 20:50

Спасибо, почти понял, только вот это:
Цитата:

Сообщение от hopmaster (Сообщение 888703)
5)В приложении, в переменной api_result будет хранится:<?xml version="1.0" encoding="utf-8"?>
<response>Имя Фамилия</response>

То есть после запроса будет достаточно написать
Код AS1/AS2:

idname.text = api_result;

и он всё отобразит?)

PS: Ура, отобразил))) А можете ещё на пальцах объяснить, как xml код преобразовать как текст?

Что-то типа:
Код AS1/AS2:

var xml: XML = new XML();
xml.load(api_result);
xml.ignoreWhite = true;
xml.onLoad = function()
{
    aaa = new String();
    aaa = this.firstChild.firstChild.nodeValue;
        bbb = aaa.split("\n");
        text = bbb.join("");
    t.text = aaa;
}

Примерно так или нет?)

Не получилось(

Как же заставить api_result отображать не xml текст?

hopmaster 25.02.2010 20:32

чёто мне не нравится как ты объявляешь переменную. Лучше объяви так:
Код AS1/AS2:

doc = new XML(api_result);

А теперь можешь использовать: doc.firstChild; doc.lastChild; doc.nextSibling; и т.д


Часовой пояс GMT +4, время: 07:23.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.