feishu2md icon indicating copy to clipboard operation
feishu2md copied to clipboard

[Bug]: GetWikiNodeList获取知识空间子节点列表时死循环

Open ksztone-huanggonghao opened this issue 4 months ago • 1 comments

问题描述

获取知识空间子节点列表时,没有传入上次查询的PageToken,导致死循环

飞书文档链接

/

期望的 markdown 格式

解决方案:以下修改可以解决此bug
func (c *Client) GetWikiNodeList(ctx context.Context, spaceID string, parentNodeToken *string) ([]*lark.GetWikiNodeListRespItem, error) {
	resp, _, err := c.larkClient.Drive.GetWikiNodeList(ctx, &lark.GetWikiNodeListReq{
		SpaceID:         spaceID,
		PageSize:        nil,
		PageToken:       nil,
		ParentNodeToken: parentNodeToken,
	})

	if err != nil {
		return nil, err
	}
	flag := resp.HasMore
	nodes := resp.Items

	for flag {
		resp, _, err := c.larkClient.Drive.GetWikiNodeList(ctx, &lark.GetWikiNodeListReq{
			SpaceID:         spaceID,
			PageSize:        nil,
			PageToken:       &resp.PageToken,
			ParentNodeToken: parentNodeToken,
		})

		if err != nil {
			return nil, err
		}

		nodes = append(nodes, resp.Items...)
		flag = resp.HasMore
	}

	return nodes, nil
}

(可选)更多信息

No response

ksztone-huanggonghao avatar Sep 24 '24 09:09 ksztone-huanggonghao