How to give a user read-only access to a channel

When you invite a new member to join the private channel, you can assign the following values to the optional property invitation_status: invited_by_friend, invited_ by_non_friend. The new member’s status will be set as invited.

For example:

{
    "user_ids": ["Fluo", "Justin", "Chris"],
    "invitation_status": {
        "Fluo": "invited_by_friend",
        "Justin": "invited_by_non_friend"
    },
    "inviter_id": "Jeff"
}

As shown in the code snippet, Fluo and Justin are not members of the channel so they will not be able to send any messages to the channel. However, they can retrieve the messages in order to read them. Additionally, when you display the members in the channel, you can list the members with member_state_filter set to joined_only in order to prevent other members from noticing the read-only users.