Good day!
I have some problems with using your solution.
When Im trying to sending a message from bot by command execute(response);, the text is sending from my telegram bot, but it cause an error Numeric value (5040624363) out of range of int (-2147483648 - 2147483647) at [Source: (String)"{"ok":true,"result":{"message_id":38,"from":{"id":5040624363,"is_bot":true,"first_name":"Coinmarketcap","username":"cmc_sahd_bot"}....
Code:
@Override
public void onUpdateReceived(Update update) {
Message message = update.getMessage();
Long chatId = message.getChatId();
SendMessage response = new SendMessage();
response.setChatId(String.valueOf(chatId));
switch (message.getText()) {
case "/top10crypto":
cryptoService.getLatestCryptoCurrencies(10)
.forEach(c -> {
String price = c.getQuote().getUsd().get("price");
price = price.substring(0, price.indexOf(".")+3);
response.setText(StringUtils.defaultIfBlank(response.getText(), "")+c.getName()+"("+c.getSymbol()+"): "+price+"\n");
});
break;
}
try {
execute(response);
if (activeChatRepository.findActiveChatByChatId(chatId).isEmpty()) {
ActiveChat activeChat = new ActiveChat();
activeChat.setChatId(chatId);
activeChatRepository.save(activeChat);
}
log.info("Sent message: \"{}\" to {}", response.getText(), chatId);
} catch (TelegramApiException e) {
e.printStackTrace();
log.error("Failed to send message \"{}\" to {}, cause error {}, ", response.getText(), chatId, e.getMessage());
}
}
Stack:
org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException: Unable to deserialize response
at org.telegram.telegrambots.meta.api.methods.send.SendMessage.deserializeResponse(SendMessage.java:132)
at org.telegram.telegrambots.meta.api.methods.send.SendMessage.deserializeResponse(SendMessage.java:32)
at org.telegram.telegrambots.bots.DefaultAbsSender.sendApiMethod(DefaultAbsSender.java:1009)
at org.telegram.telegrambots.meta.bots.AbsSender.execute(AbsSender.java:64)
at org.sahd.coinmarketcapBot.service.BotService.onUpdateReceived(BotService.java:59)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at org.telegram.telegrambots.meta.generics.LongPollingBot.onUpdatesReceived(LongPollingBot.java:27)
at org.telegram.telegrambots.updatesreceivers.DefaultBotSession$HandlerThread.run(DefaultBotSession.java:320)
Caused by: com.fasterxml.jackson.databind.JsonMappingException: Numeric value (5040624363) out of range of int (-2147483648 - 2147483647)
at [Source: (String)"{"ok":true,"result":{"message_id":38,"from":{"id":5040624363,"is_bot":true,"first_name":"Coinmarketcap","username":"cmc_sahd_bot"},"chat":{"id":397809995,"first_name":"Dmitriy","last_name":"Sahno","username":"DmitriySahno","type":"private"},"date":1638823357,"text":"Bitcoin(BTC): 49200.96\nEthereum(ETH): 4222.66\nBinance Coin(BNB): 573.07\nTether(USDT): 1.00\nSolana(SOL): 191.04\nCardano(ADA): 1.36\nUSD Coin(USDC): 0.99\nXRP(XRP): 0.79\nPolkadot(DOT): 27.28\nTerra(LUNA): 63.15"}}"; line: 1, column: 61] (through reference chain: org.telegram.telegrambots.meta.api.objects.ApiResponse["result"]->org.telegram.telegrambots.meta.api.objects.Message["from"]->org.telegram.telegrambots.meta.api.objects.User["id"])
at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:397)
at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:356)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.wrapAndThrow(BeanDeserializerBase.java:1726)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:295)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:156)
at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:293)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:156)
at com.fasterxml.jackson.databind.deser.impl.FieldProperty.deserializeAndSet(FieldProperty.java:138)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:293)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:156)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4526)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3468)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3451)
at org.telegram.telegrambots.meta.api.methods.send.SendMessage.deserializeResponse(SendMessage.java:124)
... 7 more
Caused by: com.fasterxml.jackson.core.exc.InputCoercionException: Numeric value (5040624363) out of range of int (-2147483648 - 2147483647)
at [Source: (String)"{"ok":true,"result":{"message_id":38,"from":{"id":5040624363,"is_bot":true,"first_name":"Coinmarketcap","username":"cmc_sahd_bot"},"chat":{"id":397809995,"first_name":"Dmitriy","last_name":"Sahno","username":"DmitriySahno","type":"private"},"date":1638823357,"text":"Bitcoin(BTC): 49200.96\nEthereum(ETH): 4222.66\nBinance Coin(BNB): 573.07\nTether(USDT): 1.00\nSolana(SOL): 191.04\nCardano(ADA): 1.36\nUSD Coin(USDC): 0.99\nXRP(XRP): 0.79\nPolkadot(DOT): 27.28\nTerra(LUNA): 63.15"}}"; line: 1, column: 61]
at com.fasterxml.jackson.core.base.ParserMinimalBase._reportInputCoercion(ParserMinimalBase.java:596)
at com.fasterxml.jackson.core.base.ParserMinimalBase.reportOverflowInt(ParserMinimalBase.java:565)
at com.fasterxml.jackson.core.base.ParserBase.convertNumberToInt(ParserBase.java:889)
at com.fasterxml.jackson.core.base.ParserBase._parseIntValue(ParserBase.java:802)
at com.fasterxml.jackson.core.base.ParserBase.getIntValue(ParserBase.java:646)
at com.fasterxml.jackson.databind.deser.std.NumberDeserializers$IntegerDeserializer.deserialize(NumberDeserializers.java:477)
at com.fasterxml.jackson.databind.deser.std.NumberDeserializers$IntegerDeserializer.deserialize(NumberDeserializers.java:457)
at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:293)
... 18 more
Good day! I have some problems with using your solution. When Im trying to sending a message from bot by command
execute(response);
, the text is sending from my telegram bot, but it cause an errorNumeric value (5040624363) out of range of int (-2147483648 - 2147483647) at [Source: (String)"{"ok":true,"result":{"message_id":38,"from":{"id":5040624363,"is_bot":true,"first_name":"Coinmarketcap","username":"cmc_sahd_bot"}....
Code:
Stack:
Please help me to solve this problem.