Skip to main content

Callback Before Creating a Group

Function Description

The App business server can get the request of users creating a group through this callback. Meanwhile, the business server can refuse the user's request to create a group, or modify and intervene in the request.

Precautions

  • To enable the callback, you must configure the callback URL and turn on the switch corresponding to this callback protocol. See the Callback Description document for configuration methods.
  • The direction of the callback is an HTTP/HTTPS POST request initiated by OpenIM Server to the App backend.
  • The App business server needs to verify whether the command parameter in the request URL is its own SDKNAME parameter after receiving the callback request.
  • The APP business server needs to respond to this request within the timeout period.

Scenarios That May Trigger This Callback

  • App users create a group through the client.
  • App administrators create a group through the REST API.

Timing of the Callback

  • Before OpenIM Server prepares to create a group.

Interface Description

Request URL Example

In the following example, the configured callback URL of the App is https://callbackurl.

https://callbackurl?command=$CallbackCommand&contenttype=json

Request Parameter Description

ParameterDescription
httpsRequest protocol is HTTPS, request method is POST
https://callbackurlCallback URL
CallbackCommandFixed value: callbackBeforeCreateGroupCommand
contenttypeFixed value: JSON
Header NameExample ValueOptionalTypeDescription
operationID1646445464564RequiredstringoperationID used for global tracing

Request Packet Example

{
"callbackCommand": "callbackBeforeCreateGroupCommand",
"groupID": "12345",
"groupName": "MyGroup",
"notification": "Welcome to MyGroup!",
"introduction": "This is a group for discussing example topics.",
"faceURL": "http://example.com/path/to/face/image.png",
"ownerUserID": "user123",
"createTime": 1673048592000,
"memberCount": 10,
"ex": "Extra data",
"status": 1,
"creatorUserID": "user123",
"groupType": 1,
"needVerification": 1,
"lookMemberInfo": 1,
"applyMemberFriend": 0,
"notificationUpdateTime": 1673048592000,
"notificationUserID": "user456",
"initMemberList": [
{
"userID": "user789",
"roleLevel": 60
},
{
"userID": "user101112",
"roleLevel": 20
}
]
}

Request Packet Field Description

ObjectTypeDescription
callbackCommandstringCallback command, here is the callback before creating a group
groupIDstringUnique identifier of the group
groupNamestringName of the group
notificationstringNotification message of the group
introductionstringIntroduction of the group
faceURLstringURL of the group icon
ownerUserIDstringUser ID of the group owner
createTimeint64Timestamp of group creation (milliseconds)
memberCountuint32Number of members in the group
exstringAdditional data field
statusint32Status of the group
creatorUserIDstringUser ID of the group creator
groupTypeint32Type of the group
needVerificationint32Whether verification is needed to join the group
lookMemberInfoint32Whether group member information can be viewed
applyMemberFriendint32Whether group members can apply to be friends
notificationUpdateTimeint64Timestamp of the last update of the group notification (milliseconds)
notificationUserIDstringUser ID who updated the group notification
initMemberListarrayList of initial members of the group, including userID and roleLevel fields
initMemberList.userIDstringUser ID of the initial member
initMemberList.roleLevelint32Role level of the initial member

Response Packet Example

Allowing Creation

{
"actionCode": 0,
"errCode": 0,
"errMsg": "

Success",
"errDlt": "",
"nextCode": 0,
"groupID": "G001",
"groupName": "MyGroup",
"notification": "Welcome to MyGroup!",
"introduction": "A group for discussions",
"faceURL": "http://example.com/groupface.png",
"ownerUserID": "user01",
"ex": "Some extra data",
"status": 1,
"creatorUserID": "user02",
"groupType": 1,
"needVerification": 0,
"lookMemberInfo": 1,
"applyMemberFriend": 1
}

Response Packet Field Description

FieldValueDescription
actionCode0Indicates whether the business system's callback is correctly executed. 0 means the operation was successful.
errCode5001Represents a custom error code, ranging from 5000-9999. Set when actionCode is not 0; set when nextCode is 1.
errMsg"An error message"Simple error message corresponding to the custom error code.
errDlt"Detailed error information"Detailed error information corresponding to the custom error code.
nextCode1Next execution instruction, 1 means refuse to continue execution, set when actionCode is 0.
groupIDstringUnique identifier of the group.
groupNamestringName of the group.
notificationstringNotification/announcement message of the group.
introductionstringIntroduction of the group.
faceURLstringURL of the group's icon or image.
ownerUserIDstringUser ID of the group owner.
exstringAdditional data or information.
statusint32Status of the group.
creatorUserIDstringUser ID of the group creator.
groupTypeint32Type of the group.
needVerificationint32Whether verification is needed to join the group.
lookMemberInfoint32Whether group member information can be viewed.
applyMemberFriendint32Whether one can apply to be friends with group members.