代码示例

各种编程语言的完整代码示例和最佳实践

本页面提供了各种编程语言调用小红书内容发布 API 的详细代码示例。 所有示例都包含了错误处理、重试机制等最佳实践,可以直接在你的项目中使用。

错误处理

始终检查 API 响应中的 success 字段,并适当处理错误情况

重试机制

对于临时性错误(如网络问题),建议实现重试机制

资源 URL 建议

使用 HTTPS 协议的 URL,确保图片和视频资源可公开访问

内容优化

标题简洁明了,内容丰富有趣,图片清晰美观

编程语言示例

完整代码示例
const axios = require('axios');

// 配置信息
const API_BASE_URL = 'https://yourdomain.com';
const API_KEY = 'your_api_key_here';

// 创建 HTTP 客户端
const apiClient = axios.create({
  baseURL: API_BASE_URL,
  headers: {
    'Content-Type': 'application/json'
  }
});

// 发布图文内容
async function publishImageNote(title, content, images) {
  try {
    const response = await apiClient.post('/api/rednote/publish', {
      api_key: API_KEY,
      type: 'normal',
      title: title,
      content: content,
      images: images
    });
    
    console.log('发布成功:', response.data);
    return response.data;
  } catch (error) {
    console.error('发布失败:', error.response?.data || error.message);
    throw error;
  }
}

// 发布视频内容
async function publishVideoNote(title, content, videoUrl, coverUrl) {
  try {
    const response = await apiClient.post('/api/rednote/publish', {
      api_key: API_KEY,
      type: 'video',
      title: title,
      content: content,
      video: videoUrl,
      cover: coverUrl
    });
    
    console.log('发布成功:', response.data);
    return response.data;
  } catch (error) {
    console.error('发布失败:', error.response?.data || error.message);
    throw error;
  }
}

// 使用示例
async function main() {
  try {
    // 发布图文
    const imageResult = await publishImageNote(
      '美食分享',
      '今天做了超好吃的蛋糕\n#美食 #烘焙',
      [
        'https://example.com/cake1.jpg',
        'https://example.com/cake2.jpg'
      ]
    );
    
    console.log('图文二维码:', imageResult.data.qrcode);
    
    // 发布视频
    const videoResult = await publishVideoNote(
      '旅行日记',
      '美丽的海边风景\n#旅行 #海景',
      'https://example.com/travel.mp4',
      'https://example.com/travel-cover.jpg'
    );
    
    console.log('视频二维码:', videoResult.data.qrcode);
    
  } catch (error) {
    console.error('操作失败:', error);
  }
}

main();

错误处理最佳实践

统一错误处理

JavaScript 示例
function handleApiError(error) {
  if (error.response) {
    const { status, data } = error.response;
    
    switch (status) {
      case 401:
        return '请检查 API Key 是否正确或已过期';
      case 402:
        return '调用次数不足,请前往用户中心充值';
      case 400:
        return `参数错误:${data.error?.message || '请检查请求参数'}`;
      case 429:
        return '请求过于频繁,请稍后重试';
      case 500:
        return '服务器临时错误,请稍后重试';
      default:
        return `请求失败:${data.error?.message || '未知错误'}`;
    }
  } else {
    return `网络错误:${error.message}`;
  }
}

重试策略

重试机制示例
async function publishWithRetry(data, maxRetries = 3) {
  const retryableErrors = [429, 500, 502, 503, 504];
  
  for (let attempt = 1; attempt <= maxRetries; attempt++) {
    try {
      return await publishToXiaohongshu(data);
    } catch (error) {
      const shouldRetry = error.response && 
                         retryableErrors.includes(error.response.status);
      
      if (shouldRetry && attempt < maxRetries) {
        const delay = Math.min(1000 * Math.pow(2, attempt - 1), 10000);
        console.log(`重试第 ${attempt} 次,${delay}ms 后重试...`);
        await new Promise(resolve => setTimeout(resolve, delay));
      } else {
        throw error;
      }
    }
  }
}

立即测试代码

复制上面的代码到你的项目中,替换 API Key 后即可开始使用。 也可以使用我们的在线测试工具快速验证功能。