@@ -622,10 +622,12 @@ export class FeishuGateway {
622622 /**
623623 * 获取合并转发消息的子消息列表
624624 */
625- async getMergedForwardMessages ( messageId : string ) : Promise < any [ ] > {
625+ async getMergedForwardMessages ( messageId : string ) : Promise < { items : any [ ] ; error ?: string } > {
626626 try {
627627 const token = await this . getTenantToken ( ) ;
628- if ( ! token ) return [ ] ;
628+ if ( ! token ) {
629+ return { items : [ ] , error : '无法获取 tenant_access_token' } ;
630+ }
629631
630632 const res = await fetch (
631633 `${ this . apiBaseUrl } /open-apis/im/v1/messages/${ encodeURIComponent ( messageId ) } /merged_forward` ,
@@ -638,14 +640,14 @@ export class FeishuGateway {
638640
639641 if ( data . code !== 0 ) {
640642 dlog ( `[Feishu] getMergedForwardMessages(${ messageId } ) failed: ${ JSON . stringify ( data ) } ` ) ;
641- return [ ] ;
643+ return { items : [ ] , error : `飞书接口返回错误 (code: ${ data . code } ): ${ data . msg || '未知错误' } ` } ;
642644 }
643645
644646 const items = data . data ?. items || data . data ?. messages || ( Array . isArray ( data . data ) ? data . data : [ ] ) ;
645- return items ;
647+ return { items } ;
646648 } catch ( e : any ) {
647649 dlog ( `[Feishu] getMergedForwardMessages(${ messageId } ) threw: ${ e ?. message || e } ` ) ;
648- return [ ] ;
650+ return { items : [ ] , error : `网络或未知请求异常: ${ e ?. message || e } ` } ;
649651 }
650652 }
651653
@@ -865,7 +867,7 @@ export class FeishuGateway {
865867 if ( msgType === 'merge_forward' ) {
866868 try {
867869 dlog ( `Received merge_forward message, fetching sub-messages for ${ message . message_id } ...` ) ;
868- const subMessages = await this . getMergedForwardMessages ( message . message_id ) ;
870+ const { items : subMessages , error } = await this . getMergedForwardMessages ( message . message_id ) ;
869871 if ( subMessages && subMessages . length > 0 ) {
870872 const parts : string [ ] = [ ] ;
871873 parts . push ( `📢 **[合并转发的消息记录]**` ) ;
@@ -890,7 +892,7 @@ export class FeishuGateway {
890892 }
891893 text = parts . join ( '\n' ) ;
892894 } else {
893- text = `[合并转发消息,但未获取到任何子消息内容]` ;
895+ text = `[合并转发消息,但未获取到任何子消息内容${ error ? `。原因: ${ error } ` : '' } ]` ;
894896 }
895897 } catch ( err : any ) {
896898 derror ( `Failed to parse merge_forward message:` , err ) ;
0 commit comments