Роботы, плагины и скрипты к чату MyChat. Разработка альтернативных клиентов и различных утилит. Технические вопросы по программированию, замечания и предложения по развитию API
Аватара пользователя
SV
Пытаюсь отправить сообщение в канал. Не пойму что я не так делаю.
Код: Выделить всё
function Send_Text_Channel(UIN, UID:Integer; Msg:WideString):WideString;
var
  JSONobj: ISuperObject;
begin
  JSONobj := SO();
  JSONobj.I['UIN']   := UIN;  //Пользователь
  JSONobj.I['UID']   := UID;  //ID Канала
  JSONobj.S['Msg']   := Msg;  //Сообщение
  result := JSONobj.AsJSon;
  JSONobj.Clear(true);
  JSONobj := nil;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
   mcSendDataToMyChat(MCC_Send_MessageToTextChannel,Send_Text_Channel(2,11,'Hello Wolrd!'));
end;


В документации сказано:

22. 0016 cs_put_msg2txt_channel - отправить сообщение в текстовый канал
{
"UIN" : 17, // UIN отправителя
"UID" : 21, // UID канала, куда следует отправить сообщение
"Msg" : "L$Hello!" // текст сообщения
}


Подскажите что не так.
Аватара пользователя
Алексей Пикуров
Поправьте функцию function Send_Text_Channel, UIN там не обязателен, сервер и так знает, от чьего имени отправляется сообщение. В открытом протоколе чуть-чуть другая логика, но работать будет и так как вы написали - тоже, просто будет игнорироваться параметр UIN.

Я включил обработку сообщений в каналах для плагинов.
Сборка сервера и клиента, обновить оба: http://www.nsoft-s.com/mychat/beta/mychat1.zip

P.S. По разметке сообщений, рекомендую справку клиента: "Плагины" — "Создание своих плагинов" — "Форматирование сообщений" — "Форматирование текста".

Справка сейчас переписывается, но часть статей о плагинах актуальна, рекомендую почитать, всё, кроме раздела "Список функций", там устаревшая информация.
Аватара пользователя
SV
Спасибо. Если что буду задавать вопросы по ходу продвижения. В конце выложу исходник в общее пользование.
Последний раз редактировалось SV Чт июл 17, 2014 3:35 pm, всего редактировалось 1 раз.
Аватара пользователя
Алексей Пикуров
Пожалуйста, спрашивайте конечно.

P.S. Не цитируйте пост без общей надобности целиком, просто жмите "Ответить" внизу страницы.
Аватара пользователя
SV
Привык что кнопка ответить находиться именно там где у вас цитата.
Аватара пользователя
SV
Алексей Пикуров писал(а):Поправьте функцию function Send_Text_Channel, UIN там не обязателен, сервер и так знает, от чьего имени отправляется сообщение. В открытом протоколе чуть-чуть другая логика, но работать будет и так как вы написали - тоже, просто будет игнорироваться параметр UIN.


Попробовал всё отлично заработало.
Но если будет указан UIN то работать не будет, проверил. Будет время поправьте этот момент.
Аватара пользователя
Алексей Пикуров
Окей, проверю, thanks.