Skip to main content

User profiles

This guide covers managing user profiles, including setting, querying, and subscribing to profile changes.

tip

All user profile APIs are on the NCEngine.userModule object, not directly on NCEngine.

Update your profile

Call updateMyUserProfile:completion: on NCEngine.userModule. Pass the fields you want to update — nil fields are not modified.

swift
import NexconnChatSDK
let userProfile = UserProfile()
userProfile.name = "Display Name"
NCEngine.userModule.updateMyUserProfile(userProfile) { errorKeys, error in
if error == nil {
// Updated successfully
} else {
// errorKeys: field-level error keys returned on partial failure
}
}

Get your profile

swift
import NexconnChatSDK
NCEngine.userModule.getMyUserProfile { userProfile, error in
if error == nil {
print("Name: \(userProfile?.name ?? "")")
}
}

Get other users' profiles

Query up to 20 users per call:

swift
import NexconnChatSDK
NCEngine.userModule.getUserProfiles(userIds: ["userId1", "userId2"]) { profiles, error in
// profiles: list of user profiles
}

Profile visibility

Set visibility

swift
import NexconnChatSDK
NCEngine.userModule.updateMyUserProfileVisibility(.everyone) { error in
if error == nil {
// Set successfully
}
}
ValueDescription
NCUserProfileVisibilityNotSetNot set — uses App Key-level setting (default)
NCUserProfileVisibilityInvisibleHidden — no one can see profile details except name and avatar
NCUserProfileVisibilityFriendVisibleVisible to confirmed friends only
NCUserProfileVisibilityEveryonePublic — all users can view your profile

Get visibility

swift
import NexconnChatSDK
NCEngine.userModule.getMyUserProfileVisibility { visibility, error in
// visibility: current setting
}

Subscribe to profile changes

Register a user event handler

Register an NCUserHandler to receive subscription events:

swift
import NexconnChatSDK
final class MyUserHandler: NSObject, UserHandler {}
let userHandler = MyUserHandler()
NCEngine.addUserHandler(identifier: "YourKey", handler: userHandler)

Subscribe

Max 200 users per call, 1,000 total subscriptions:

swift
import NexconnChatSDK
let params = SubscribeEventParams(subscribeType: .userProfile, userIds: ["userId1", "userId2"])
// Set subscribeType and expiry as needed
NCEngine.userModule.subscribeEvent(params: params) { failedUserIds, error in
// failedUserIds: IDs that failed to subscribe (empty on full success)
}

Unsubscribe

swift
import NexconnChatSDK
let params = UnsubscribeEventParams(subscribeType: .userProfile, userIds: ["userId1", "userId2"])
NCEngine.userModule.unsubscribeEvent(params: params) { failedUserIds, error in
// Unsubscribed
}

Query subscription events

swift
import NexconnChatSDK
let params = GetSubscribeEventParams()
params.subscribeType = .userProfile
params.userIds = ["userId1", "userId2"]
NCEngine.userModule.getSubscribeEvent(params: params) { events, error in
// events: subscription event list
}