go-telegram / bot

Telegram Bot API Go framework
MIT License
502 stars 46 forks source link

Cannot Unmarshal Number of Updates Struct #78

Closed xtianpu closed 1 month ago

xtianpu commented 2 months ago

Hi, so I got this error when I updated the lib to the latest.

json: cannot unmarshal number into Go struct field Message.Updates.message.forward_origin of type string

How to reproduce:

negasus commented 1 month ago

Can you use bot.WithDebug() option for bot init and send me the update json from logs, which cause this error?

xtianpu commented 1 month ago

This one below is before set to In-Memory Cache: &models.Update{ID:347697148,Message:&models.Message{ID:44253,MessageThreadID:0,From:&models.User{ID:761942406,IsBot:false,FirstName:"Suvpen",LastName:"",Username:"suvpen",LanguageCode:"en",IsPremium:true,AddedToAttachmentMenu:false,CanJoinGroups:false,CanReadAllGroupMessages:false,SupportInlineQueries:false,CanConnectToBusiness:false},SenderChat:(*models.Chat)(nil),SenderBoostCount:0,SenderBusinessBot:(*models.User)(nil),Date:1716338781,BusinessConnectionID:"",Chat:models.Chat{ID:761942406,Type:"private",Title:"",Username:"suvpen",FirstName:"Suvpen",LastName:"",IsForum:false,Photo:(*models.ChatPhoto)(nil),ActiveUsernames:nil,Birthdate:models.Birthdate{},BusinessIntro:(*models.BusinessIntro)(nil),BusinessLocation:(*models.BusinessLocation)(nil),BusinessOpeningHours:(*models.BusinessOpeningHours)(nil),PersonalChat:(*models.Chat)(nil),AvailableReactions:nil,AccentColorID:0,BackgroundCustomEmojiID:"",ProfileAccentColorID:0,ProfileBackgroundCustomEmojiID:"",EmojiStatusCustomEmojiID:"",EmojiStatusExpirationDate:0,Bio:"",HasPrivateForwards:false,HasRestrictedVoiceAndVideoMessages:false,JoinToSendMessages:false,JoinByRequest:false,Description:"",InviteLink:"",PinnedMessage:(*models.Message)(nil),Permissions:(*models.ChatPermissions)(nil),SlowModeDelay:0,UnrestrictBoostCount:0,MessageAutoDeleteTime:0,HasAggressiveAntiSpamEnabled:false,HasHiddenMembers:false,HasProtectedContent:false,HasVisibleHistory:false,StickerSetName:"",CanSetStickerSet:false,CustomEmojiStickerSetName:"",LinkedChatID:0,Location:(*models.ChatLocation)(nil),},ForwardOrigin:&models.MessageOrigin{Type:0,MessageOriginUser:&models.MessageOriginUser{Type:"user",Date:1716338753,SenderUser:models.User{ID:761942406,IsBot:false,FirstName:"Suvpen",LastName:"",Username:"suvpen",LanguageCode:"en",IsPremium:true,AddedToAttachmentMenu:false,CanJoinGroups:false,CanReadAllGroupMessages:false,SupportInlineQueries:false,CanConnectToBusiness:false},},MessageOriginHiddenUser:(*models.MessageOriginHiddenUser)(nil),MessageOriginChat:(*models.MessageOriginChat)(nil),MessageOriginChannel:(*models.MessageOriginChannel)(nil),},IsTopicMessage:false,IsAutomaticForward:false,ReplyToMessage:(*models.Message)(nil),ExternalReply:(*models.ExternalReplyInfo)(nil),Quote:(*models.TextQuote)(nil),ReplyToStore:(*models.Story)(nil),ViaBot:(*models.User)(nil),EditDate:0,HasProtectedContent:false,IsFromOffline:false,MediaGroupID:"",AuthorSignature:"",Text:"alohahyomamayomanjabersamamamajanganmanja",Entities:nil,LinkPreviewOptions:(*models.LinkPreviewOptions)(nil),Animation:(*models.Animation)(nil),Audio:(*models.Audio)(nil),Document:(*models.Document)(nil),Photo:nil,Sticker:(*models.Sticker)(nil),Story:(*models.Story)(nil),Video:(*models.Video)(nil),VideoNote:(*models.VideoNote)(nil),Voice:(*models.Voice)(nil),Caption:"",CaptionEntities:nil,HasMediaSpoiler:false,Contact:(*models.Contact)(nil),Dice:(*models.Dice)(nil),Game:(*models.Game)(nil),Poll:(*models.Poll)(nil),Venue:(*models.Venue)(nil),Location:(*models.Location)(nil),NewChatMembers:nil,LeftChatMember:(*models.User)(nil),NewChatTitle:"",NewChatPhoto:nil,DeleteChatPhoto:false,GroupChatCreated:false,SupergroupChatCreated:false,ChannelChatCreated:false,MessageAutoDeleteTimerChanged:(*models.MessageAutoDeleteTimerChanged)(nil),MigrateToChatID:0,MigrateFromChatID:0,PinnedMessage:models.MaybeInaccessibleMessage{},Invoice:(*models.Invoice)(nil),SuccessfulPayment:(*models.SuccessfulPayment)(nil),UsersShared:(*models.UsersShared)(nil),ChatShared:(*models.ChatShared)(nil),ConnectedWebsite:"",WriteAccessAllowed:(*models.WriteAccessAllowed)(nil),PassportData:(*models.PassportData)(nil),ProximityAlertTriggered:(*models.ProximityAlertTriggered)(nil),BoostAdded:(*models.ChatBoostAdded)(nil),ForumTopicCreated:(*models.ForumTopicCreated)(nil),ForumTopicEdited:(*models.ForumTopicEdited)(nil),ForumTopicClosed:(*models.ForumTopicClosed)(nil),ForumTopicReopened:(*models.ForumTopicReopened)(nil),GeneralForumTopicHidden:(*models.GeneralForumTopicHidden)(nil),GeneralForumTopicUnhidden:(*models.GeneralForumTopicUnhidden)(nil),GiveawayCreated:(*models.GiveawayCreated)(nil),Giveaway:(*models.Giveaway)(nil),GiveawayWinners:(*models.GiveawayWinners)(nil),GiveawayCompleted:(*models.GiveawayCompleted)(nil),VoiceChatScheduled:(*models.VoiceChatScheduled)(nil),VoiceChatStarted:(*models.VoiceChatStarted)(nil),VoiceChatEnded:(*models.VoiceChatEnded)(nil),VoiceChatParticipantsInvited:(*models.VoiceChatParticipantsInvited)(nil),WebAppData:(*models.WebAppData)(nil),ReplyMarkup:models.InlineKeyboardMarkup{},},EditedMessage:(*models.Message)(nil),ChannelPost:(*models.Message)(nil),EditedChannelPost:(*models.Message)(nil),BusinessConnection:(*models.BusinessConnection)(nil),BusinessMessage:(*models.Message)(nil),EditedBusinessMessage:(*models.Message)(nil),DeletedBusinessMessages:(*models.BusinessMessagesDeleted)(nil),MessageReaction:(*models.MessageReactionUpdated)(nil),MessageReactionCount:(*models.MessageReactionCountUpdated)(nil),InlineQuery:(*models.InlineQuery)(nil),ChosenInlineResult:(*models.ChosenInlineResult)(nil),CallbackQuery:(*models.CallbackQuery)(nil),ShippingQuery:(*models.ShippingQuery)(nil),PreCheckoutQuery:(*models.PreCheckoutQuery)(nil),Poll:(*models.Poll)(nil),PollAnswer:(*models.PollAnswer)(nil),MyChatMember:(*models.ChatMemberUpdated)(nil),ChatMember:(*models.ChatMemberUpdated)(nil),ChatJoinRequest:(*models.ChatJoinRequest)(nil),ChatBoost:(*models.ChatBoostUpdated)(nil),RemovedChatBoost:(*models.ChatBoostRemoved)(nil),}

This one below is before unmarshal: { "Updates": [ { "update_id": 347697148, "message": { "message_id": 44253, "from": { "id": 761942406, "is_bot": false, "first_name": "Suvpen", "username": "suvpen", "language_code": "en", "is_premium": true }, "date": 1716338781, "chat": { "id": 761942406, "type": "private", "username": "suvpen", "first_name": "Suvpen", "birthdate": { "day": 0, "month": 0 }, "bio": "", "join_to_send_messages": false, "join_by_request": false }, "forward_origin": { "Type": 0, "MessageOriginUser": { "type": "user", "date": 1716338753, "sender_user": { "id": 761942406, "is_bot": false, "first_name": "Suvpen", "username": "suvpen", "language_code": "en", "is_premium": true } }, "MessageOriginHiddenUser": null, "MessageOriginChat": null, "MessageOriginChannel": null }, "text": "alohah yomama yomanja bersama mama jangan manja", "pinned_message": { "Type": 0, "Message": null, "InaccessibleMessage": null }, "reply_markup": { "inline_keyboard": null } } } ], }

So actually I put []*tgm.Updates on in-mem cache, then failed to unmarshall it.

negasus commented 1 month ago

v1.3.1 released