Feb 14th, 2024

Mesibo Release v2.4

We are excited to announce the release of mesibo v2.4, which includes a powerful new profile API with enhanced customization and access control.

This update introduces major improvements you'll want to integrate into your Mesibo applications. We recommend reviewing these changes and updating your Mesibo APIs accordingly.

Key Highlights

Flexible Profile Schema

Previously Mesibo profiles had predefined fields like name, status, etc. Many of our customers have requested for additional fields. You can now add custom profile fields suited to your app needs instead of predefined ones using set and get APIs, same as provided for 'MesiboMessage'. For example:

profile.setString("city", "Palo Alto");
profile.setInt("birthYear", 1990);
profile.setBoolean("xyz", true);

Multiple Image Support

Apps can now add multiple profile images instead of just one, all automatically synced.

profile.setImage(image, 0);     // image at index 0
profile.setImage(another_image, 1); // image at index 1
...
profile.setImage(more_image, 4); // image at index 4

Profile Access Levels

The standout feature of v2.4 is the introduction of granular access levels for profile data. You can define up to 8 access levels (16 levels on on-premise) and assign them to contacts. This means that each contact will only view the profile fields and images you designate for their assigned access level, providing a new level of control and personalization. For example,

profile.setString("city", "Palo Alto", 0); // access level 0
profile.setInt("birthYear", 1990, 1); //access level 1
profile.setBoolean("xyz", true, 2); //access level 2

0 is public access level. So in above example, "city" is public, while "birthYear" is accessible only to users with access level 1, while "xyz" is accessible only to users with access level 2. You can assign multiple access level to a user. For example:

anotherUser.setAccessLevels([1,2,5]);

All users whom you set as contact and paired have at least access level 1 assigned to them.

There are many more enhancements such as custom incall ringing tones, faster synchronization, etc.

Upgrading to v2.4

Upgrading to v2.4 API requires only a few minimal changes. If you are using mesibo on-premise, update it to the build 7313 or later.

Migrating predefined status, info and custom profile fields

mesibo v2.4 API removes predefined status, info and custom profile fields. You can replace them using profile.setString() API. Your v2.4 is guaranteed to be compatible with older version using predefined status, info and custom profile fields using following replacement APIs. However, older APIs will not be able to access any new fields or multiple images your app may add.

Old APIsv2.4 Replacement
profile.getStatus()profile.getString("status", "")
profile.setStatus(status)profile.setString("status", status)
profile.getInfo()profile.getString("info", "")
profile.setInfo(info)profile.setString("info", info)
profile.getCustom()profile.getString("other", "")
profile.setCustom(custom)profile.setString("other", custom)

Profile.getImage() API

mesibo APIs prior to v2.4 offered different image functions such as profile.getImage(), profile.getThumbnail(), etc. With introduction of multiple image support, profile.getImage() now returns MesiboProfileImage object on which you can call various functions such as getImage(), getThumbnail(), etc. For example:

MesiboProfileImage image0 = profile.getImage(0); //get image at index 0
Bitmap image = image0.getImage();

MesiboProfileImage nextImage = image0.getNextImage(); // iterate through images

MesiboProfileImage image1 = profile.getImage(1); // get image at index 1

You can use the following replacement APIs to quickly migrate to v2.4 APIs:

Old APIsv2.4 Replacement
profile.getImage()profile.getImage().getImage()
profile.getThumbnail()profile.getImage().getThumbnail()
profile.getImageOrThumbnail()profile.getImage().getImageOrThumbnail()
profile.getImagePath()profile.getImage().getImagePath()
profile.getThumbnailPath()profile.getImage().getThumbnailPath()
profile.getImageOrThumbnailPath()profile.getImage().getImageOrThumbnailPath()

New MesibProfile_onPublish listener

mesibo v2.4 introduces a new listener MesibProfile_onPublish which will be called after publishing self or group profile to indicate if the profile was successfully published or if any error, for example, network error.

Documentation

You can refer to the updated profile documentation for more details.

Sample App Source Code

We have updated the source code of sample apps including the first appopen_in_new and Messenger for all platforms with new APIs.

We highly recommend upgrading your Mesibo integration to v2.4 to take advantage of these great new capabilities! Let us know if you have any other questions.