Взаимодействие с Windows Live Messenger
От: Sidious  
Дата: 24.10.06 14:05
Оценка: :)
Доброго времени суток =)

Задача: необходимо получить список групп в live messenger (LM) вместе с пользователями которые туда входят. Использую Interop.MessengerAPI (add reference и дальше выбираю COM-библиотеку). Делается это всё в 2003 студии под .net 1.1 (это так, на всякий случай, мало ли поможет).
Проблема: Список групп определяется верно, а вот пользователи которые в каждую из групп входят определяются неверно. Бывает что пользователи из группы "Собутыльники" оказываются в группе "Любовницы" или того хуже вообще отображаются как люди не входящие ни в одну из групп. Причем заметил, что если открыть LM и создать группы, поперетягивать туда ВСЕХ пользователей, то информация будет получена верно. Закрываем его, потом опять запускаем — инфа неверная . Версия LM — 8.0 (8.0.0812.00).

Простой пример:
Получаем список имён групп. Работает нормально.
static string[] GetMessengerGroupsNames(MessengerClass msn)
{
    ArrayList groupNames = new ArrayList();
    foreach (IMessengerGroup group in (IMessengerGroups)msn.MyGroups)
    {
        groupNames.Add(group.Name);
    }

    return (string[])groupNames.ToArray(typeof(string));
}


Получаем список имён контактов по имени группы. Не работает.
static string[] GetMessengerGroupContactsNames(MessengerClass msn, string messengerGroupName)
{
    ArrayList contactsNames = new ArrayList();
    foreach (IMessengerGroup group in (IMessengerGroups)msn.MyGroups)
    {
        if (group.Name == messengerGroupName)
        {
            foreach (IMessengerContact contact in (IMessengerContacts)group.Contacts)
            {
                contactsNames.Add(contact.SigninName);
            }
        }
    }

    return (string[])contactsNames.ToArray(typeof(string));
}


Т.е. если судить логически, то перебирая контакты группы "Любовницы" я должен получить их всех, но такого не происходит

Что неверно и как исправить, помогите пожалуйста
Ave mater Shillieni!
Re: Взаимодействие с Windows Live Messenger
От: Константин Л.  
Дата: 24.10.06 14:40
Оценка:
Здравствуйте, Sidious, Вы писали:

Наверное, любовницы и собутыльники имеют свойство иногда пить и общаться не с тобой
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Взаимодействие с Windows Live Messenger
От: Sidious  
Дата: 24.10.06 14:44
Оценка: :)
Здравствуйте, Константин Л., Вы писали:

КЛ>Здравствуйте, Sidious, Вы писали:


КЛ>Наверное, любовницы и собутыльники имеют свойство иногда пить и общаться не с тобой


Нет у них такого свойства, я смотрел :Р
Ave mater Shillieni!
Re: Взаимодействие с Windows Live Messenger
От: Sidious  
Дата: 30.10.06 09:35
Оценка:
Это API больше не поддерживается, потому в Live Messenger не работает. Как ещё можно получить список групп и пользователей? Конечно можно коннектиться к серваку, логиниться (в общем старательно косить под мессенджер) и получать с него необходимую мне информацию Этот способ опробован и он работает. Но есть проблема: если запущен мессенджер, то U-зверя выбросывает (мы же залогинились из своей программы с его кредентиалами) и он начинает ругаться
Есть ли какой-то путь менее болезненного получения такой инфы?
Вот здесь есть контрол, который получает список пользователей (без групп), в мессенджере при этом можно быть залогиненным и сессия не прерывается, значит есть какой-то веб-сервис к примеру Кто-нибудь знает что-то по этому поводу?
Ave mater Shillieni!
Re[2]: Взаимодействие с Windows Live Messenger
От: Константин Л.  
Дата: 30.10.06 12:45
Оценка:
Здравствуйте, Sidious, Вы писали:

S>Это API больше не поддерживается, потому в Live Messenger не работает. Как ещё можно получить список групп и пользователей? Конечно можно коннектиться к серваку, логиниться (в общем старательно косить под мессенджер) и получать с него необходимую мне информацию Этот способ опробован и он работает. Но есть проблема: если запущен мессенджер, то U-зверя выбросывает (мы же залогинились из своей программы с его кредентиалами) и он начинает ругаться

S>Есть ли какой-то путь менее болезненного получения такой инфы?
S>Вот здесь есть контрол, который получает список пользователей (без групп), в мессенджере при этом можно быть залогиненным и сессия не прерывается, значит есть какой-то веб-сервис к примеру Кто-нибудь знает что-то по этому поводу?

А он через Live Communication Service работает? Если да, то RTC должен помочь. Покрайней мере у меня работало
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Взаимодействие с Windows Live Messenger
От: Константин Л.  
Дата: 30.10.06 13:47
Оценка:
Здравствуйте, Константин Л., Вы писали:

[]

КЛ>А он через Live Communication Server работает? Если да, то RTC должен помочь. Покрайней мере у меня работало.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Взаимодействие с Windows Live Messenger
От: Sidious  
Дата: 31.10.06 11:01
Оценка:
Здравствуйте, Константин Л., Вы писали:
КЛ>А он через Live Communication Service работает? Если да, то RTC должен помочь. Покрайней мере у меня работало
Нет, не через (него судя по обфусцированному жаба-скрипт коду). А что такое RTC?
Ave mater Shillieni!
Re[4]: Взаимодействие с Windows Live Messenger
От: Константин Л.  
Дата: 31.10.06 11:35
Оценка:
Здравствуйте, Sidious, Вы писали:

S>Здравствуйте, Константин Л., Вы писали:

КЛ>>А он через Live Communication Service работает? Если да, то RTC должен помочь. Покрайней мере у меня работало
S>Нет, не через (него судя по обфусцированному жаба-скрипт коду). А что такое RTC?

Real Time Communications. см RTC Client API
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: Взаимодействие с Windows Live Messenger
От: Sidious  
Дата: 31.10.06 13:20
Оценка:
Здравствуйте, Константин Л., Вы писали:

КЛ>Здравствуйте, Sidious, Вы писали:


S>>Здравствуйте, Константин Л., Вы писали:

КЛ>>>А он через Live Communication Service работает? Если да, то RTC должен помочь. Покрайней мере у меня работало
S>>Нет, не через (него судя по обфусцированному жаба-скрипт коду). А что такое RTC?

КЛ>Real Time Communications. см RTC Client API


Нет, не то =(
Ave mater Shillieni!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.