Skip to content

Phased approach to rich message support

bizzbyster edited this page Aug 7, 2018 · 5 revisions

Summary

The team has decided to implement rich message support in Rocket.chat clients in three phases as defined below.

Phase 0

Implement simple support for buttons in attachments. The support is "simple" in that it only involves changes that can be made on the clients alone without modifying the core or underlying message definitions. Additionally it does not involve veering significantly from Slack-like JSON message schema. Phase 1 functionality is described here: https://github.com/WideChat/Rocket.Chat.Android/wiki/Phase-1--Rich-Messaging-Acceptance-Test. Note that the "deferred" items in that list are not part of phase 1.

Android PR: https://github.com/RocketChat/Rocket.Chat.Android/pull/1557

Web client PR: https://github.com/RocketChat/Rocket.Chat/pull/11473

IOS PR: not completed yet

Note that the Android PR is still missing some of the functionality (horizontal buttons and webviews) but we'd like to get that merged asap and add the missing functionality later.

Phase 1

Support buttons disappearing when clicked and other functionality that requires editing of messages (button hiding on click) supported by Slack Interactive Messages but using the Rocket.chat server as a proxy between the client (Android, IOS, web) and the bot. In other words, phase 2 will not allow clients to connect directly to a third party service specified via the response_url field in the message json.

Phase 2

Clients can interact directly with third party services specified via the response_url field.