EditedMessage should use 'username' as 'user' is not present in slack API response #2021
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.
Description
When a bot such as Opsdroid itself edits a slack message, then user_id=event["message"]["user"] throws an exception as Slack API returns
["message"]["username"]
rather than["message"]["user"]
:We should also take into account that Opsdroid may edit the message and not throw the above exception.
Status
READY
Type of change
How Has This Been Tested?
I added
print(f'event[message]: {event["message"]}')
in here so we can print the Slack API response just before we edited the message.Then, in my test skill I added this:
The result of the above code being executed is seen here:
Note that Slack API returns
["message"]["username"]
rather than["message"]["user"]
, so when this block was executed without my changes I got the exception displayed in the Description section of this PR. When I changed it to["message"]["username"]
then the Exception was gone because of course it matched Slack API's response.Checklist: