Здесь вы можете задать любые вопросы по MyChat, по работе программы, её настройке, лицензированию и т.д.
ANDiv
Подскажите как можно интегрировать MyChat с сайтом компании?!
Чтобы пользователи сайта могли оставлять сообщения для выбранных отделов или же общаться с ними онлайн.
Аватара пользователя
Андрей Раков
Добрый день.

1. Вариант

Вы можете сделать себе такой же веб-чат, как у нас на странице поддержки:
https://mychat-server.com/support.html?uin=3&silent

Этот чат рассчитан на общение один-на-один с конкретным пользователем чата, UIN указан прямо в адресной строке. Если у вас есть внешний доступ к вашему веб-серверу, то вы можете у себя на сайте добавить кнопку со ссылкой на подобие нашей:
HTTPS://(ваш адерес):(порт, если не используете стандартный 443)/support.html?uin=(UIN пользователя, с кем должен открыться чат)&silent

Чтобы чат раскрывался не на весь экран, а в небольшом окошке, вам нужно на кнопку добавить обработчик нажатия, а не ссылку. Вот пример с нашего сайта:

Код: Выделить всё
<div onclick="(function(){var miniWEBMC=window.open('https://mychat-server.com/support.html?uin=3&silent', '', 'menubar=no,resizable=0,directories=no,location=no,toolbar=no,status=no,scrollbars=0,screenX=50,screenY=70,width=590,height=500'); if (miniWEBMC) miniWEBMC.focus();})()" style="cursor:pointer;color: #0000BF;">
    <img src="/img/Live_Chat.png" onmouseout="this.src='/img/Live_Chat.png';" onmouseover="this.src='/img/Live_Chat_2.png';">
</div>


Картинки: /img/Live_Chat.png (картинка с кнопкой) и /img/Live_Chat_2.png (картинка с кнопкой, когда над ней наведена мышка), нужно заменить на свои.

2. Вариант

Также вы можете получить код для кнопки чата в веб-админке, для этого зайдите в раздел "Инструменты" - "Веб-поддержка на сайт" и выполняете несколько шагов:
  • создаете группу веб-поддержки
  • добавляете в нее каких-то пользователей
  • мышкой выделяете этих людей в левой панели
  • в нижней части нажимаете кнопку "Получить"
  • копируете появившийся текст
  • вставляете его на сайте перед закрывающим тегом "</body>"

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

Дополнительно убедитесь, что в поле url: "mychat-server.com" (в коде кнопки) указан ваш внешний IP или HOST адрес сервера чата.


ВАЖНО! Если вы хотите, чтобы работали звонки, ваш веб-сервер Обязан иметь SSL сертификаты для защищенного подключения. Это политика браузеров, не наша прихоть.

Сертификат можно получить бесплатно, вот инструкция: https://habrahabr.ru/post/252529/
ANDiv
Т.е., как я понял, нужно будет обязательно поднимать свой веб-сервер (например IIS), дружить его с майчат-сервером?!
И еще вопрос - есть ли возможность изменить окно чата? Сделать не так как по вашему примеру https://mychat-server.com/support.html?uin=3&silent
А, что нибудь например как тут:
Image-34.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Алексей Пикуров
Ничего поднимать не нужно, всё есть в MyChat.

Список портов, которые используют MyChat Server и MyChat Client: https://www.nsoft-s.com/mcserverhelp/in ... tports.htm

Дизайн окна вы можете менять, CSS и JavaScript у вас в руках.
Аватара пользователя
Андрей Раков
Вообще-то я ничего не говорил про "поднятия" какого-то дополнительного веб-сервера. В MyChat встроен веб-сервер, который предоставляет все необходимые функции. Вам нужно разместить код кнопки у себя на хостинге.

Внешний вид чата изменить можете, если знакомы с HTML + CSS.

Веб-чат лежит в папке:
"C:\Program Files (x86)\MyChat Server\node\server\www\chat\source\"
и
"C:\Program Files (x86)\MyChat Server\node\server\www\chat\source\support\"
ANDiv
Ок! С этим мы разобрались, пока у меня вопросов нету по подключению.
Есть один момент - есть ли какая возможность получить информацию с сервера майчата для сайта статус пользователя (онлайн/оффлайн)?!
Аватара пользователя
Алексей Пикуров
У нас есть IntegrationAPI, можно им воспользоваться. Соединяетесь с сервером через сокеты и работаете.
ANDiv
Я так понимаю за место того, чтобы дать развернутый ответ на поставленные вопросы, или же дать ссылку на нормальную документацию у нас будет идти игра в футбол!
Я задавал вам вопрос в скайпе вы меня опять отфутболили на форум. Просил дать пояснения вот по этому:
Код: Выделить всё
mychatSendData: function (sIP: WideString; iPort: DWORD; sServerKey: WideString; iCmd: DWORD; sJSONData: WideString): WideString;safecall;

Она возвращает строку, содержащую ответ в случае удачного выполнения, или текст с ошибкой. Назначение параметров:
sIP — адрес сервера MyChat. IP или доменное имя;
iPort — TCP порт для подключения. Обычно 2004;
sServerKey — ключ-пароль для работы с MyChat Integration API. По умолчанию "iddqd";
iCmd — номер команды, которую следует выполнить;
sJSONData — параметры команды в виде текстовой строки в формате JSON.

А, именно по формату sJSONData - что можно там передать или что можно через нее запросить?!
Без полного понимания всех команд тяжело распланировать, что и как будет делаться!
Последний раз редактировалось ANDiv Ср фев 03, 2016 1:33 pm, всего редактировалось 1 раз.
Аватара пользователя
Андрей Раков
Добрый день.

На какой вопрос вы не получили ответ?
Аватара пользователя
Алексей Пикуров
Редактировать свои сообщения, после того, как вам уже написали ответ - дурной тон. Ну да ладно.

Открываем файл TestMyChatDLL.dpr из примера для DelphiXE3
\doc\IntegrationAPI\Delphi\XE3\x32\

Список констант:
Код: Выделить всё
  MCIAPI_CS_SendPrivateMessage  = 2;
  MCIAPI_CS_IsUINOnline         = 3;
  MCIAPI_CS_SendChannelMessage  = 4;
  MCIAPI_CS_GetUINByNick        = 5;
  MCIAPI_CS_GetUINByEmail       = 6;
  MCIAPI_CS_IsUINExists         = 7;
  MCIAPI_CS_AddBBSMessage       = 8;
  MCIAPI_SC_SetChannelTopic     = 9;
  MCIAPI_CS_GetChannelNameByUID = 10;
  MCIAPI_CS_IsChannelExists     = 11;
  MCIAPI_CS_GetUINByADLogin     = 12;
  MCIAPI_CS_GetInfoByUIN        = 13;
  MCIAPI_CS_GetServerInfo       = 14;


Вот это тот функционал, который есть у IntegrationAPI на данный момент. Из названия констант понятно, что делает та или иная команда. Большей документации пока что нет.

Задавайте конкретные вопросы, пишите, чего не хватает конкретно вам, для нас не проблема добавить новую функцию в следующей сборке MyChat.

И ещё. Просьба понять, что в скайпе мы не можем мгновенно ответить на сложные вопросы. Скайп - он для простых ответов типа да/нет.

Спасибо.
ANDiv
Что за костыли вы разрабатываете?!
Что мешает сделать нормальный и полноценный json запросы?! Ну или xml?!
Это решило бы много вопросов по интеграции программ, сайтов с сервером майчата.
К тому же с выходом 1С 8.3.6 там на уровне платформы уже можно работать с json. А, использовать dll это усложнять систему. Так, как например на хостинге просто не возможно прикрутить ее :)
Аватара пользователя
Алексей Пикуров
ANDiv писал(а):Что мешает сделать нормальный и полноценный json запросы?! Ну или xml?!

У нас нет пока поддержки REST-технологии. Вы ведь об этом спрашиваете? Что за обида? :):)

Если умеете работать с сокетами - вот вам IntegrationAPI. Не умеете - вот вам DLL. Не умеете - вот вам компонент для 1С. Куча возможностей. Мало?

Когда-нибудь и REST прикрутим для полного счастья, если заказы будут на это.
ANDiv
Алексей Пикуров писал(а):У нас нет пока поддержки REST-технологии. Вы ведь об этом спрашиваете? Что за обида? :):)

Если умеете работать с сокетами - вот вам IntegrationAPI. Не умеете - вот вам DLL. Не умеете - вот вам компонент для 1С. Куча возможностей. Мало?

Когда-нибудь и REST прикрутим для полного счастья, если заказы будут на это.

О каких обидах вы говорите?!
Универсализация и упрощение это двигатель всего.
Вы же мне предлагаете воспользоваться "поломанным" костылем, для того, чтобы с сайта через запрос можно было получить информацию - статус пользователя или любую другую информацию о нем?!
И вот теперь представьте какое идет усложнение цепочки для этого функционала. Повторяю еще раз сайт не на локальном сервере, на хостинге.
Аватара пользователя
Алексей Пикуров
Окей.

IntegrationAPI в руки и вперёд. Открыли сокет TCP по 2004 порту к серверу, отправили JSON объект, подождали ответ, получили JSON объект, закрыли сокет.

Повторяю еще раз сайт не на локальном сервере, на хостинге.

Да где угодно, это не важно.

О каких обидах вы говорите?!

О ваших ругательствах и оскорблениях в скайпе.
ANDiv
Алексей Пикуров писал(а):Окей.

IntegrationAPI в руки и вперёд. Открыли сокет TCP по 2004 порту к серверу, отправили JSON объект, подождали ответ, получили JSON объект, закрыли сокет.

Благодарю, улыбнуло!
Повторяю еще раз. Помойму уже я вам начинаю пояснять как будет работать та цепочка, которую вы мне предлагаете. :))))
Поясняю на пальцах!
Есть сеть где установлен сервер майчата (это локальная сеть, корпоративный чат). Есть хостинг где крутится сайт (это совсем другая сеть). Между собой они связаны посредством прокси серверов провайдеров и т.д. На хостинге не получится ни как подключить вашу dll, так как это не позволяет движок на котором размешен веб-сайт. Если размешать в локальной сети dll, то к ней через что-то надо будет обращаться и работать с ней. Например писать свою программу на дельфях, или через 1с или еще как.
Писать программу - не получится, не дадут на эти цели средства. Использоваться 1С - тоже не вариант. Да и не совсем красивый это вариант. В общем любой из этих вариантов усложняет систему - в администрировании, уменьшает ее надежность (в плане стабильности).
Почему я и предложил - что мешает создать json запросы, да хотя бы более простой вариант свой какой-либо запрос-ответ на такие случаи?!
Думаю самый красивый вариант - это вообще интегрировать эту dll или ее механизмы в движок сервера MyChat
Если вы все таки сделаете REST запросы то это было бы просто отлично. Так, как направлений применения этой технологии очень широкий.
Аватара пользователя
Алексей Пикуров
Вы не понимаете того, о чём я пишу.
IntegrationAPI в руки и вперёд. Открыли сокет TCP по 2004 порту к серверу, отправили JSON объект, подождали ответ, получили JSON объект, закрыли сокет.

Для этого не нужны никакие DLL. Вы работаете напрямую с MyChat Server через сетевое соединение. Это чуть-чуть сложнее, чем классический REST API, буквально на две команды: открытия сокета и его закрытия.

Работать с сокетами умеют любые языки и системы, php, javascript... Всё то, на чём работает ваш сайт.

При чём тут DLL? :)
ANDiv
Алексей Пикуров писал(а):Вы не понимаете того, о чём я пишу.
IntegrationAPI в руки и вперёд. Открыли сокет TCP по 2004 порту к серверу, отправили JSON объект, подождали ответ, получили JSON объект, закрыли сокет.

Для этого не нужны никакие DLL. Вы работаете напрямую с MyChat Server через сетевое соединение. Это чуть-чуть сложнее, чем классический REST API, буквально на две команды: открытия сокета и его закрытия.

Работать с сокетами умеют любые языки и системы, php, javascript... Всё то, на чём работает ваш сайт.

При чём тут DLL? :)

Во первых - где описание, что и в каком виде возвращается при запросе?! Предлагаете опять взять бубен и пытаться на вашем гениальном форуме отрыть нужную информацию?!
Вот это вообще сверх генильность - https://www.nsoft-s.com/mcserverhelp/
Такая информативная помощь!
Во вторых, с самого начала вам и был задан вопрос - что и как делать по нашим хотелкам. Вводная информация была дана. Вы мне, что на это ответили?! Пользуйтесь вот этой dll.
Аватара пользователя
Алексей Пикуров
Реализована поддержка REST API в MyChat Server: https://nsoft-s.com/mcserverhelp/index. ... lerest.htm