Developer Technical FAQ

Developer Technical FAQ

What is the definition of a Monthly Active User (MAU) versus a Registered User?

Monthly Active User (MAU) is defined as a unique Hyphenate ID (Hyphenate MIM account username) that uses the Hyphenate in-app chat service to chat (send/receive messages) with other users/groups in a given month under the same Hyphenate API key. You can have several other registered users in the Hyphenate user database that are NOT using the chat service and who you will not be charged for. You will only be charged for the active chat users each month.

How do I handle user management for the Hyphenate in-app chat service? Do I need to bind Hyphenate IDs to my existing (or create a new) user database?

User account integration - Bind the Hyphenate ID to exist or new user data

Hyphenate provides the messaging channel for data delivery, similar to how FedEx delivers the package to your doorstep. In order for Hyphenate to deliver the message, Hyphenate needs to assign a unique Hyphenate ID to each chat user; a room number for each apartment unit. For privacy purposes, Hyphenate only stores and maintains the Hyphenate ID, but not the user information; the package is delivered to the unit based on the room number without any details regarding the occupants.

You might ask, how do I match the Hyphenate ID with its’ corresponding user data? If you already have existing user data, you’ll need to use the REST API provided by Hyphenate to create a unique Hyphenate ID and bind it to user objects. You can write a script to loop through all the users and create a Hyphenate account to bind to individual users. Click here for more details.

Contact management - two options:

  1. Use the contact management feature provided by Hyphenate
  2. The developer manages the contact relationship

Hyphenate’s contact management feature provides basic user relationship management. It works fine for most scenarios, but it might be limited if you need extensive customization. Click here for more details.

What if I require a longer chat history retention policy (message history storage)?

The standard message storage policy is 7 days for undelivered messages and 3 days for delivered messages, which means messages will be purged from the Hyphenate server if they extend beyond these time periods.

In other words, the undelivered messages are cached and then will automatically attempt to redeliver for up to a 3-day period. One of the challenges with mobile devices is that app users may be offline/not using the app for several days. This delivery 'retry' method ensures that the server continues to attempt to redeliver the message.

The following methods can be used to retain chat history:

  1. RESTful API: The cost-effective approach to retain chat history is to make a ‘get chat history’ request via API by Hyphenate to fetch the chat history from the Hyphenate server, and then store the chat history to your developer’s backend. You are able to fetch your chat history on a timely basis, ranging from every few days to every day, to every hour. Click here for more details.
  2. Webhooks: If you’re interested in obtaining messages in real time for use cases such as chatbot integration or real-time language translation, then the optimal solution is to set up Webhooks to receive the real-time messages as your users interact. Click here for more details.
  3. Hyphenate: For an additional monthly fee, Hyphenate can provide cloud-based storage to retain your chat history for your users.

 

What is the difference between a "group chat" and a "chat room"? Can I create private groups for approved members only to chat?

Developers can configure groups to be either “public” (where anyone can join) or “private” (where only approved/authorized members can participate). In the case of a group chat, all member of the group will receive a notification (if the user turns on notifications) whenever a message is posted in the group. Chat rooms must be created by the developer (admin) and are always publicly viewable by all members of the app. Users of chat rooms will receive no notifications when messages are posted in the chat room.

  Group Chat room
Public/Private type Public & Private Public only
Push notification YES NO
Receive notification if left the view YES NO
Receive notification if the app is terminated YES NO

 

How does Hyphenate manage Security and User Privacy?

  1. Standard authentication with OAuth 2.0
  2. Standard transport layer security with TLS/SSL
  3. End-to-end encryption option. [Read more]
  4. Privacy policy - Hyphenate has a strict backend database privacy policy with tiered access permission and access log. [Read more]

How do the Hyphenate anti-spam and filtering options work/what does it do?

Here are some approaches to mitigate the impact of spam that is employed by Hyphenate. We can also apply a hybrid solution with mixed and matched techniques to enhance the effectiveness. Please contact us for more details at info@hyphenate.io

  1. Keyword filtering
  2. Behavioral pattern recognition
  3. Sentiment analysis
  4. Real-time messaging processing

How much developer time/resources are required to integrate the Hyphenate into my app?

Integration of the Hyphenate MIM platform into most mobile apps typically takes between 1-day to 1-week, depending on the required features and complexity of the developer’s app. Integration is usually very straightforward as Hyphenate provides demo apps (with source) for different platforms, iOS, Android, web, and API requests. You can simply use the demo app to pick and choose your desired features and “copy and paste” them into your app.

Hyphenate designed our messaging SDK to be plug-and-play, with only a few lines of code necessary to get started. We also provide a free demo UI for immediate testing and use. No servers, no extra code to write. Our in-app chat service delivers a complete toolkit, including the app messaging SDKs, the back-end infrastructure, and the network connectivity.

Where can I find Hyphenate's developer resources (i.e. documentation, developer console, SDKs, API client libraries, and sample code)?

You can find these resources by visiting the following links:

Developer DocsDeveloper Console, & Github Repository

Demo App

iOSAndroid & Web Demo

Demo Source Code (GitHub)

iOS demo app, Android demo app, React Native (JavaScript demo and SDK), & Web app and SDK

RESTful API client libraries

Docs & Demo

Server-side client libraries

Node.jsJavaPython, & PHP