# 转发消息

## 逐条转发

逐条转发是将原消息按一一对应的方式向会话发送，生成的新消息内容将与原消息一致。

### 接口定义

::: code-group



```kotlin [Kotlin]
fun batchForwardMessage(
    param: KIMCoreForwardParam,
    callback: IResultCallback<ForwardResult>
)
```



:::

### 参数说明

| 字段     | 类型                                   | 说明             |
| :------- | :------------------------------------- | :--------------- |
| param    | KIMCoreForwardParam                    | 转发消息参数模型 |
| callback | IResultCallback &lt;ForwardResult&gt; | 转发结果         |

`KIMCoreForwardParam`

| 字段     | 类型               | 说明                |
| :------- | :----------------- | :------------------ |
| msgId    | String             | 转发消息 id         |
| chatId   | String             | 转发消息所属会话 id |
| toChatId | String             | 转发目标会话 id     |
| config   | KIMCoreConfigParam | 消息属性集合        |

`KIMCoreConfigParam`

| 字段          | 类型                  | 说明         |
| :------------ | :-------------------- | :----------- |
| messageConfig | KIMCoreMessageConfig  | 消息属性     |
| pushConfig    | KIMCorePushConfig     | 离线推送属性 |
| msgNotice     | list KIMCoreMsgNotice | 强提醒数据   |

### 代码示例

::: code-group



```kotlin [Kotlin]
val chatId = "from chat id"
val msgId = "msgID"
val toChatIds = "111”
val param = KIMCoreMessage.KIMCoreForwardParam(msgId, chatId, toChatIds)
KIMCore.instance().forwardMergeMessage(param, object : IResultCallback<ForwardResult> {
    override fun onSuccess(result: ForwardResult?) {
        TODO()
    }
    override fun onError(errorCode: ErrorCode) {
        TODO()
    }
})
```



:::

## 合并转发

合并转发是将原消息按集合成一条类型为`KIMCoreMergeForwardMessage`的合并消息，原消息将成为新消息的一部分。

### 接口定义

::: code-group



```kotlin [Kotlin]
fun forwardMergeMessage(param: KIMCoreForwardParam, callback: IResultCallback<ForwardResult>)
```



:::

### 参数说明

| 字段     | 类型                                                            | 说明     |
| :------- | :-------------------------------------------------------------- | :------- |
| param    | KIMCoreMessage.KIMCoreForwardParam                              | 参数对象 |
| callback | IResultCallback&lt;KIMCoreMergeForwardMessage.ForwardResult&gt; | 回调     |

`KIMCoreForwardParam`

| 字段      | 类型                                | 说明                |
| :-------- | :---------------------------------- | :------------------ |
| chatId    | String                              | 转发消息所属会话 id |
| msgId     | List&lt;String&gt;                  | 转发消息 id         |
| toChatIds | List&lt;String&gt;                  | 转发目标会话 id     |
| callback  | IResultCallback &lt;FailToSend&gt; | 转发结果            |

### 代码示例

::: code-group



```kotlin [Kotlin]
String chatId = "from chat id"
val msgId = listOf("msgID", "msgID2")
val toChatIds = listOf("111”,“112”,“113")
val param = KIMCoreMessage.KIMCoreForwardParam(
    chatId, msgId, toChatIds
)
KIMCore.instance().forwardMergeMessage(param, object : IResultCallback<ForwardResult> {
    override fun onSuccess(result: ForwardResult?) {
        TODO()
    }
    override fun onError(errorCode: ErrorCode) {
        TODO()
    }
})
```



:::

## 获取合并转发消息内容

### 接口定义

::: code-group



```kotlin [Kotlin]
fun getForwardMergeMessages(
    chatId: String,
    msgId: String,
    nextMsgId: String,
    callback: IResultCallback<KIMCoreMergeMessages>
)
```



:::

### 参数说明

| 字段      | 类型                                        | 说明                                                                                                |
| :-------- | :------------------------------------------ | :-------------------------------------------------------------------------------------------------- |
| chatId    | String                                      | 消息所在会话 id                                                                                     |
| msgId     | String                                      | 合并消息 id                                                                                         |
| nextMsgId | String                                      | 首次传 0，用 `KIMCoreMergeMessages.getNextMsgId()`的值来填充，如果返回-1,则表示已经拉完全部合并消息 |
| callback  | IResultCallback&lt;KIMCoreMergeMessages&gt; | 回调                                                                                                |

### 代码示例

::: code-group



```kotlin [Kotlin]
KIMCore.instance().getForwardMergeMessages("123", "333", "0",
    object : IResultCallback<KIMCoreMergeMessages> {
        override fun onSuccess(result: KIMCoreMergeMessages?) {
            TODO()
        }
        override fun onError(errorCode: ErrorCode) {
            TODO()
        }
    })
```



:::