gleberof / SQL-telegram-bot

MS SQL telegram bot
Other
42 stars 16 forks source link

привет #2

Open jumpl1ne opened 3 years ago

jumpl1ne commented 3 years ago

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

SpectatorLife commented 2 years ago

попробуй в процедуре usp_get_chat_updates команды типа CONCAT(@url, N'sendMessage'); добавить слеш CONCAT(@url, N'/sendMessage'); там из 3 штуки. два send.. и один get...

EvgeniyAlf commented 2 years ago

что не так отрабатывает в процедуре CLR\ClrHttp.cs\usp_Message2Command, текст передается в нее, но возвращает NULL

SpectatorLife commented 2 years ago

из того что я понял, похоже летом было крупное обновление на сервере телеги, включая набор и/или расположение полей в jcon а dll пытается разобрать его по старым правилам и не находит нужных полей в нужных местах. и вместо ошибки возвращает '' как вариант решения, до проверки которого у меня руки пока не добрались : так как исходников dll нету , то остается найти старый формат jsonа , пересоздать прилетающий по старым правилам и подсунуть уже в usp_Message2Command

Olegt0rr commented 2 years ago

@gleberof, FYI

@SpectatorLife, Из ломающих совместимость, была изменена только разрядность идентификаторов. Т.е. id был int32, стал int64

SpectatorLife commented 2 years ago

@Olegt0rr возможно. но тот id который я получаю и скармливаю в процедуру еще на разряд меньше ограничения int'а но вот результат ручного выполнения usp_get_chat_updates при попытки получить и обработать команду /version

Msg 6522, Level 16, State 1, Procedure dbo.usp_Message2Command, Line 0 [Batch Start Line 0] Произошла ошибка .NET Framework во время выполнения определяемой пользователем подпрограммы или агрегатной функции "usp_Message2Command": System.IndexOutOfRangeException: Индекс находился вне границ массива. System.IndexOutOfRangeException: в SqlTelegram.ClrHttp.Message2Command(SqlString json, SqlString bot_name, SqlString chat_id, SqlString& response)