Repository navigation
Delivers a complete Update on inbound telegram simulation, relates #3 - #4
Merged
Merged
Conversation
The webhook body carried only chat.id and text, so any client parsing it with Update.de_json raised on the missing date and answered 500 to the event it had just received. It now carries update_id, message_id, date, from and a typed chat, like the real API sends. Closes #3
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Inbound simulation existed so an app could be driven through its real bot
client, but the delivered body was only
{"message": {"chat": {"id"}, "text"}}.Clients do not read that dict directly: python-telegram-bot calls
Update.de_json, which needsupdate_idand, insidemessage,message_id,date,chatandfrom. Without them it raisesKeyError: 'date'and theapp answers 500 to the webhook it had just received, so the feature could not
be used for what it exists for.
Found while testing a production app whose Telegram linking flow (
/start <code>) runs over this exact path.Changes
client/sendMessagenow delivers a completeUpdatebuilt byinbound_update(): incrementalupdate_id,message_id,date, afromobject carrying the simulated username, and a
chatwith itstype.Closes #3
How to test
Register an app plus a telegram webhook, POST to
/telegram/client/sendMessageand check the recorded delivery: the payload now parses with
telegram.Update.de_jsoninstead of raising.Change type
fix, test
Checklist