Inviting Members

Overview

This guide covers inviting users to a conversation (members), listening for invites to join a conversation as well as new members joining.

Before you begin, make sure you added the SDK to your app and you are able to create a conversation.

NOTE: A step-by-step tutorial to build a chat application is available here.

This guide will introduce you to the following concepts.

  • Invites - you can invite users to a conversation
  • Application Events - member:invited events that fire on an Application, before you are a Member of a Conversation
  • Conversation Events - member:joined and text events that fire on a Conversation, after you are a Member

Listening for Conversation invites and accepting them

Achieved by adding a listener on the application object for the member:invited event:

app.on("member:invited", (member, event) => {
  //identify the sender and type of conversation.
  if (event.body.cname.indexOf("CALL") != 0 && member.invited_by) {
    console.log("*** Invitation received:", event);

    //accept an invitation.
    app.getConversation(event.cid || event.body.cname)
      .then((conversation) => {
        conversation
          .join()
          .then(() => {
            ...
          })
          .catch(this.errorLogger)
      })
      .catch(this.errorLogger)
  }
})

Listening for members who joined a conversation

Listen for the member:joined event on the conversation:

conversation.on("member:joined", (member, event) => {
  const date = new Date(Date.parse(event.timestamp))
  console.log(`*** ${member.user.name} joined the conversation`)
  ...
})

Inviting users to a conversation

Users can be invited to join conversation - their username will be used:

conversation.invite({ user_name: "Jane" }).then((member) => {
  console.log(member.state + " user: " + member.user.id + " " + member.user.name);
}).catch((error) => {
  console.log(error);
});

Reference