Здесь вы можете задать любые вопросы по MyChat, по работе программы, её настройке, лицензированию и т.д.
Аватара пользователя
Thinker
Добрый день.
Прочитал статью "Как отправить сообщение в MyChat из внешней программы или пример использования MyChat Integration API" и хочу кое-что уточнить...
1. "В простом примере мы проверим, онлайн ли нужный нам пользователь, и, если да, отправим ему сообщение, состоящее из двух строчек."
2. "Сначала проверяется, находится ли в сети пользователь с UIN 74 (функция mychatIsUserOnline), а потом, если нужный нам пользователь онлайн, то отправляется сообщение из двух строчек"
Правильно ли я понимаю, что несмотря на вышеуказанный текст, код примера не содержит отправки сообщения в зависимости от нахождения пользователя в онлайн, а просто выводит результат проверки его статуса, а затем все равно отправляет сообщение? Или эти функции как-то взаимодействуют между собой (например, на уровне глобальных переменных внутри библиотеки)?
Аватара пользователя
SV
Судя по коду функция mychatIsUserOnline только проверят онлайн ли заданный пользователь.
А функция mychatSendPrivateMessage именно отправляет сообщение заданному пользователю.

Только не понятно работает ли данный API.
Аватара пользователя
Thinker
Спасибо, конечно, но вопрос был вовсе не в том, что именно делает каждая из функций, это и так понятно :)
Аватара пользователя
SV
В примере вызываются всего две функции. Сначала проверяется, находится ли в сети пользователь с UIN 74 (функция mychatIsUserOnline), а потом, если нужный нам пользователь онлайн, то отправляется сообщение из двух строчек (функция mychatSendPrivateMessage).
Аватара пользователя
Алексей Пикуров
Thinker писал(а):Правильно ли я понимаю, что несмотря на вышеуказанный текст, код примера не содержит отправки сообщения в зависимости от нахождения пользователя в онлайн, а просто выводит результат проверки его статуса, а затем все равно отправляет сообщение? Или эти функции как-то взаимодействуют между собой (например, на уровне глобальных переменных внутри библиотеки)?

Добрый день. Да, вы всё правильно поняли, по коду примера это ясно видно. Функции между собой не взаимодействуют, они работают отдельно.
Аватара пользователя
SV
В примере вызываются всего две функции. Сначала проверяется, находится ли в сети пользователь с UIN 74 (функция mychatIsUserOnline), а потом, если нужный нам пользователь онлайн, то отправляется сообщение из двух строчек (функция mychatSendPrivateMessage).

Правьте тогда ошибки в статье.
Аватара пользователя
Алексей Пикуров
Я переформулирую, ок.
Аватара пользователя
Thinker
Алексей Пикуров писал(а):Добрый день. Да, вы всё правильно поняли, по коду примера это ясно видно. Функции между собой не взаимодействуют, они работают отдельно.
Благодарю за ответ :)
Аватара пользователя
Thinker
Продолжу тему. О какой именно библиотеке (mychat.dll) идет речь в статье? Если о той, что лежит в серверном каталоге, то там нет этих функций (по-крайней мере, мне не удалось получить их адрес, либо они называются теперь по-другому). Если о dll по ссылке в статье - то ничего не скачивается, ссылка ведет в никуда.
Вопрос, ессно, очень простой - что делать? :)
Аватара пользователя
Thinker
Кажется, нашел, папка "Integration API" на сервере. Похоже, они действительно теперь по-другому называются, ведь так, уважаемые разработчики? :D В общем, вопрос снимается, все работает.

P.S. Блин, нету подмигивающего смайлика, пришлось "поржать" :)
Аватара пользователя
Thinker
В общем, в качестве эксперимента, удалось связать СЭД "Detrix" и MyChat:
из СЭД, при отправке документа по маршруту, на определенной точке отсылается сообщение-уведомление в MyChat.

Технология следующая: СЭД->WSDL->MyChat.
СЭД крутится на связке "Win2003+Apache+PHP+PostgreSQL", WS был написан на Delphi 7 (благодаря примеру за несколько минут...).

Вывод: API Integration работает, разработчикам - зачет! :o :D
Аватара пользователя
Андрей Раков
Добрый день, отличная новость!

А вы можете показать код вашего WSDL, возможно это пригодиться кому-то, кто меньше разбирается в программировании, но также захочет связать Detrix и MyChat.
Аватара пользователя
Thinker
Конечно, завтра сделаю
Аватара пользователя
Thinker
WSDL.ZIP
В архиве проект для Delphi 7. После компиляции получается so-модуль для сервера Apache (если убрать директиву {$E so} будет скомпилирована dll).
Основную работу по созданию проекта делает Delphi (при выборе New->Other->WebServices->SOAP Server Application), я только выбрал тип (Apache 2.x Shared Module) и описал единственный метод "SendToMyChat". Доп.файлы в архиве - это исходные файлы Delphi, скорректированные для работы с Apache версии 2.2.x.

Скриншоты
1. В СЭД, на точке маршрута "Отправить" подключается действие "Выполнить" с типом "WS-клиент", указывается адрес WS, имя и пароль для доступа
2. Отправляем документ по маршруту. Результат: в СЭД виден протокол обращения к WS, в MyChat - сообщение с типом документа
SCRS.ZIP


P.S. Вместо "Apache 2.x..." можно выбрать любой другой тип WS - принцип тот же...
У вас нет необходимых прав для просмотра вложений в этом сообщении.