You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Zendesk API分页获取全部帮助中心文章?

解决Zendesk帮助中心文章分页获取问题

要获取全部164篇文章,需要利用Zendesk API的分页机制——API返回结果里的next_page字段会提供下一页的完整请求地址,我们只需要循环请求直到next_page为空,就能收集所有文章。

以下是修改后的完整代码:

const https = require('https');
const { Textify } = require('../common/Textify');
const fs = require('fs');
const path = require('path');

async function GetZDeskArticles() {
  let allArticles = [];
  // 初始请求URL,设置每页最大100条(Zendesk允许的单页最大值)
  let currentUrl = 'https://example.zendesk.com/api/v2/help_center/en-us/articles.json?page[size]=100';

  while (currentUrl) {
    await new Promise((resolve, reject) => {
      const request = https.request(currentUrl, (response) => {
        let data = '';
        response.on('data', (chunk) => {
          data += chunk.toString();
        });
        response.on('end', () => {
          const body = JSON.parse(data);
          // 合并当前页的文章到总数组
          allArticles = [...allArticles, ...body.articles];
          // 更新为下一页URL,无后续页面时next_page为null
          currentUrl = body.next_page;
          resolve();
        });
      });

      request.on('error', (error) => {
        reject(error);
      });

      request.end();
    });
  }

  return allArticles;
}

async function StoreZDeskArticles() {
  try {
    const zdeskArticles = await GetZDeskArticles();
    let arts = [];
    zdeskArticles.forEach((art) => {
      if (art.draft) return;
      art.body = Textify(art.body);
      arts.push(art);
    });

    let storagePath = path.resolve(
      __dirname,
      '../',
      '_data',
      'ZenDeskArticles.json'
    );
    fs.writeFileSync(storagePath, JSON.stringify(arts), 'utf8');
    console.log('所有文章已成功存储');
  } catch (error) {
    console.error('获取或存储文章失败:', error);
  }
}

StoreZDeskArticles();

关键修改说明

  • 将GetZDeskArticles改为异步函数,通过while循环处理分页请求
  • 每次请求后解析返回的next_page字段,作为下一次请求的地址,直到该字段为null
  • 用扩展运算符将每一页的文章合并到总数组中
  • 给StoreZDeskArticles添加了错误捕获,方便排查问题

内容的提问来源于stack exchange,提问作者mtdev88

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 16:05:16