Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ POST {WEBHOOK_ADDRESS}/callbackAfterSendGroupMsgCommand
```

## Request body
The payload contains `callbackCommand: callbackAfterSendGroupMsgCommand`, `groupID`, and the complete message snapshot described on [Before sending a group message](/platform-api/webhooks/message/before-send-group-message). It includes `recvID` and `keyVersion` Enterprise extensions.
The payload contains `callbackCommand: callbackAfterSendGroupMsgCommand`, `groupID`, and the complete message snapshot described on [Before sending a group message](/platform-api/webhooks/message/before-send-group-message). It also includes `keyVersion` <span className="enterprise-field-badge">Enterprise</span>.

## Response
Return HTTP success promptly. Message delivery has already been processed and cannot be changed by this response.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,10 @@ POST {WEBHOOK_ADDRESS}/callbackBeforeSendGroupMsgCommand
```

## Request body
The payload contains `callbackCommand: callbackBeforeSendGroupMsgCommand`, `groupID`, and the message fields described on [Before sending a one-to-one message](/platform-api/webhooks/message/before-send-single-message). Group messages also expose these fields:
The payload contains `callbackCommand: callbackBeforeSendGroupMsgCommand`, `groupID`, and the common message fields described on [Before sending a one-to-one message](/platform-api/webhooks/message/before-send-single-message), except `recvID`; group callbacks use `groupID` instead to identify the destination. Group messages also expose this field:

| Property | Type | Description |
| --- | --- | --- |
| recvID <span className="enterprise-field-badge">Enterprise</span> | string | Recipient identifier supplied for the group message. |
| keyVersion <span className="enterprise-field-badge">Enterprise</span> | int | Message encryption key version. |

## Response
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ operationID: {OPERATION_ID}
```json
{
"sendID": "user_001",
"recvID": "user_001",
"callbackCommand": "callbackAfterSendGroupMsgCommand",
"serverMsgID": "server_msg_001",
"clientMsgID": "client_msg_001",
Expand Down Expand Up @@ -59,7 +58,6 @@ operationID: {OPERATION_ID}
| 参数名 | 是否必填 | 类型 | 说明 |
| ----------------------------------------------------------------- | -------- | -------- | ------------------------------------------------------------------------------------------------------------------ |
| sendID | 是 | string | 消息发送者用户 ID。 |
| recvID <span className="enterprise-field-badge">商业版</span> | 是 | string | 消息接收者用户 ID;单聊时为对端用户 ID。 |
| callbackCommand | 是 | string | 回调命令,值与当前页面的回调命令一致。 |
| serverMsgID | 是 | string | OpenIM 服务端消息 ID。 |
| clientMsgID | 是 | string | 客户端消息 ID。 |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ operationID: {OPERATION_ID}
```json
{
"sendID": "user_001",
"recvID": "user_001",
"callbackCommand": "callbackBeforeSendGroupMsgCommand",
"serverMsgID": "server_msg_001",
"clientMsgID": "client_msg_001",
Expand Down Expand Up @@ -59,7 +58,6 @@ operationID: {OPERATION_ID}
| 参数名 | 是否必填 | 类型 | 说明 |
| ----------------------------------------------------------------- | -------- | -------- | ------------------------------------------------------------------------------------------------------------------ |
| sendID | 是 | string | 消息发送者用户 ID。 |
| recvID <span className="enterprise-field-badge">商业版</span> | 是 | string | 消息接收者用户 ID;单聊时为对端用户 ID。 |
| callbackCommand | 是 | string | 回调命令,值与当前页面的回调命令一致。 |
| serverMsgID | 是 | string | OpenIM 服务端消息 ID。 |
| clientMsgID | 是 | string | 客户端消息 ID。 |
Expand Down
4 changes: 2 additions & 2 deletions data/structure/platform-api-content-audit.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"baseline": "Current reviewed Chinese Platform API pages in content/zh/docs/chat/platform-api",
"reviewedAt": "2026-08-03",
"baseline": "Current reviewed Chinese Platform API pages in content/zh/docs/chat/platform-api; CallbackBeforeSendGroupMsgReq and CallbackAfterSendGroupMsgReq in open-im-server/pkg/callbackstruct/message.go expose groupID",
"reviewedAt": "2026-08-04",
"pages": [
{
"path": "/platform-api/auth/overview",
Expand Down
4 changes: 2 additions & 2 deletions src/generated/search-index-zh.json
Original file line number Diff line number Diff line change
Expand Up @@ -5829,15 +5829,15 @@
"description": "Review, reject, or inspect fields before a group message is sent.",
"context": "Platform API",
"keywords": "platform-api v3 platform-api webhooks message before-send-group-message",
"content": "Use this callback for content moderation, policy enforcement, or field validation before a group message is sent. HTTP request POST WEBHOOK ADDRESS /callbackBeforeSendGroupMsgCommand Request body The payload contains callbackCommand: callbackBeforeSendGroupMsgCommand , groupID , and the message fields described on Before sending a one to one message /platform api/webhooks/message/before send single message . Group messages also expose these fields: | Property | Type | Description | | | | | | recvID Enterprise | string | Recipient identifier supplied for the group message. | | keyVersion Enterprise | int | Message encryption key version. | Response Return the common before event response from Webhooks overview /platform api/webhooks/overview . Use nextCode: 1 to reject the message. Processing rules Configuration key: beforeSendGroupMsg . OpenIM waits synchronously; timeout behavior follows failedContinue ."
"content": "Use this callback for content moderation, policy enforcement, or field validation before a group message is sent. HTTP request POST WEBHOOK ADDRESS /callbackBeforeSendGroupMsgCommand Request body The payload contains callbackCommand: callbackBeforeSendGroupMsgCommand , groupID , and the common message fields described on Before sending a one to one message /platform api/webhooks/message/before send single message , except recvID ; group callbacks use groupID instead to identify the destination. Group messages also expose this field: | Property | Type | Description | | | | | | keyVersion Enterprise | int | Message encryption key version. | Response Return the common before event response from Webhooks overview /platform api/webhooks/overview . Use nextCode: 1 to reject the message. Processing rules Configuration key: beforeSendGroupMsg . OpenIM waits synchronously; timeout behavior follows failedContinue ."
},
{
"path": "/platform-api/webhooks/message/after-send-group-message",
"title": "After sending a group message",
"description": "Synchronize a message event after a group message is sent.",
"context": "Platform API",
"keywords": "platform-api v3 platform-api webhooks message after-send-group-message",
"content": "Synchronize a message event after a group message is sent. HTTP request POST WEBHOOK ADDRESS /callbackAfterSendGroupMsgCommand Request body The payload contains callbackCommand: callbackAfterSendGroupMsgCommand , groupID , and the complete message snapshot described on Before sending a group message /platform api/webhooks/message/before send group message . It includes recvID and keyVersion Enterprise extensions. Response Return HTTP success promptly. Message delivery has already been processed and cannot be changed by this response. Processing rules Configuration key: afterSendGroupMsg . Process idempotently using clientMsgID , scoped by groupID when necessary."
"content": "Synchronize a message event after a group message is sent. HTTP request POST WEBHOOK ADDRESS /callbackAfterSendGroupMsgCommand Request body The payload contains callbackCommand: callbackAfterSendGroupMsgCommand , groupID , and the complete message snapshot described on Before sending a group message /platform api/webhooks/message/before send group message . It also includes keyVersion Enterprise . Response Return HTTP success promptly. Message delivery has already been processed and cannot be changed by this response. Processing rules Configuration key: afterSendGroupMsg . Process idempotently using clientMsgID , scoped by groupID when necessary."
},
{
"path": "/platform-api/webhooks/message/before-message-modify",
Expand Down
4 changes: 2 additions & 2 deletions src/generated/search-index.json
Original file line number Diff line number Diff line change
Expand Up @@ -5829,15 +5829,15 @@
"description": "Review, reject, or inspect fields before a group message is sent.",
"context": "Platform API",
"keywords": "platform-api v3 platform-api webhooks message before-send-group-message",
"content": "Use this callback for content moderation, policy enforcement, or field validation before a group message is sent. HTTP request POST WEBHOOK ADDRESS /callbackBeforeSendGroupMsgCommand Request body The payload contains callbackCommand: callbackBeforeSendGroupMsgCommand , groupID , and the message fields described on Before sending a one to one message /platform api/webhooks/message/before send single message . Group messages also expose these fields: | Property | Type | Description | | | | | | recvID Enterprise | string | Recipient identifier supplied for the group message. | | keyVersion Enterprise | int | Message encryption key version. | Response Return the common before event response from Webhooks overview /platform api/webhooks/overview . Use nextCode: 1 to reject the message. Processing rules Configuration key: beforeSendGroupMsg . OpenIM waits synchronously; timeout behavior follows failedContinue ."
"content": "Use this callback for content moderation, policy enforcement, or field validation before a group message is sent. HTTP request POST WEBHOOK ADDRESS /callbackBeforeSendGroupMsgCommand Request body The payload contains callbackCommand: callbackBeforeSendGroupMsgCommand , groupID , and the common message fields described on Before sending a one to one message /platform api/webhooks/message/before send single message , except recvID ; group callbacks use groupID instead to identify the destination. Group messages also expose this field: | Property | Type | Description | | | | | | keyVersion Enterprise | int | Message encryption key version. | Response Return the common before event response from Webhooks overview /platform api/webhooks/overview . Use nextCode: 1 to reject the message. Processing rules Configuration key: beforeSendGroupMsg . OpenIM waits synchronously; timeout behavior follows failedContinue ."
},
{
"path": "/platform-api/webhooks/message/after-send-group-message",
"title": "After sending a group message",
"description": "Synchronize a message event after a group message is sent.",
"context": "Platform API",
"keywords": "platform-api v3 platform-api webhooks message after-send-group-message",
"content": "Synchronize a message event after a group message is sent. HTTP request POST WEBHOOK ADDRESS /callbackAfterSendGroupMsgCommand Request body The payload contains callbackCommand: callbackAfterSendGroupMsgCommand , groupID , and the complete message snapshot described on Before sending a group message /platform api/webhooks/message/before send group message . It includes recvID and keyVersion Enterprise extensions. Response Return HTTP success promptly. Message delivery has already been processed and cannot be changed by this response. Processing rules Configuration key: afterSendGroupMsg . Process idempotently using clientMsgID , scoped by groupID when necessary."
"content": "Synchronize a message event after a group message is sent. HTTP request POST WEBHOOK ADDRESS /callbackAfterSendGroupMsgCommand Request body The payload contains callbackCommand: callbackAfterSendGroupMsgCommand , groupID , and the complete message snapshot described on Before sending a group message /platform api/webhooks/message/before send group message . It also includes keyVersion Enterprise . Response Return HTTP success promptly. Message delivery has already been processed and cannot be changed by this response. Processing rules Configuration key: afterSendGroupMsg . Process idempotently using clientMsgID , scoped by groupID when necessary."
},
{
"path": "/platform-api/webhooks/message/before-message-modify",
Expand Down