Hallo,
Telegram im Einsatzmonitor wird bekanntlich nicht weiterentwickelt, könnt ihr euch diesen Bug bitte ansehen?
Wir möchten den Telegrambot vom Einsatzmonitor in einen Kanal bzw. in eine Supergruppe einbinden.
Hintergrund der Supergruppe: Man kann festlegen, dass nur Administratoren in die Gruppe schreiben können.
Per Powershellskript klappt das versenden der Nachrichten vom Bot an die Supergruppe bzw. an den Kanal wunderbar.
Beim Einsatzmonitor bin ich auf folgendes Problem gestoßen.
Normale Userids erhalten nummerische 9stellige positive Ids. (123456789)
Normale Gruppen erhalten nummerische 9stellige negative IDs. (-123456789)
Bei Supergruppen und Kanälen sind es 13stellige negative IDs (-1001234567890)
Da liegt m. E. auch das Problem, dass der Datentyp im Programm nicht zu diesem Wert passt.
Anpassen des Datentyps als Long, Int64 oder String?
Fehler im Log in der Datenbank:
Telegramm Error bei Benutzer -1001234567890 => System.Exception: Bad Request
bei NetTelebot.TelegramBotClient.SendMessage(Int32 chatId, String text, Nullable`1 disableWebPagePreview, Nullable`1 replyToMessageId, IReplyMarkup replyMarkup)
bei Services.TelegramMessenger.TelegramMessengerClient.SendMessageWithRueckmeldungkeyboard(List`1 chatIds, String alarmtext):
TelegramBot GetUpdatesError => System.OverflowException: Der Wert für einen Int32 war zu groß oder zu klein.
bei System.Convert.ToInt32(Int64 value)
bei System.Int64.System.IConvertible.ToInt32(IFormatProvider provider)
bei System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
bei Newtonsoft.Json.Linq.Extensions.Convert[T,U](T token)
bei Newtonsoft.Json.Linq.Extensions.Value[T,U](IEnumerable`1 value)
bei NetTelebot.GroupChatInfo.Parse(JObject jsonObject)
bei NetTelebot.MessageInfo.ParseChat(JObject jsonObject)
bei NetTelebot.MessageInfo.Parse(JObject jsonObject)
bei NetTelebot.UpdateInfo.Parse(JObject jsonObject)
bei NetTelebot.UpdateInfo.<ParseArray>b__0(JObject jobject)
bei System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
bei System.Linq.Buffer`1..ctor(IEnumerable`1 source)
bei System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
bei NetTelebot.UpdateInfo.ParseArray(JArray jsonArray)
bei NetTelebot.GetUpdatesResult.Parse(JObject jsonObject)
bei NetTelebot.GetUpdatesResult.Parse(String jsonText)
bei NetTelebot.TelegramBotClient.GetUpdatesInternal(Nullable`1 offset, Nullable`1 limit)
bei NetTelebot.TelegramBotClient.GetUpdates()
bei NetTelebot.TelegramBotClient.updateTimer_Callback(Object state):
Alles anzeigen
https://core.telegram.org/bots/api#chat
Field: id
Type: Integer
Description
Unique identifier for this chat. This number may be greater than 32 bits and some programming languages may have difficulty/silent defects in interpreting it. But it is smaller than 52 bits, so a signed 64 bit integer or double-precision float type are safe for storing this identifier.
Grüße
Markus