本文档定义了用于红人博主库模块的 TikTok 数据采集云函数。
https://api.tikhub.io/api/v1tKIbAsEM8X+GmE2vHqGW7D/ICwK1Q5V4viKFrWiPB6HholGdLFqZJmmyNw==用于在红人库首页搜索 TikTok 用户。
async function handler(request, response) {
console.log('🚀 执行 TikTok 用户搜索...');
const API_KEY = 'tKIbAsEM8X+GmE2vHqGW7D/ICwK1Q5V4viKFrWiPB6HholGdLFqZJmmyNw==';
const BASE_URL = 'https://api.tikhub.io/api/v1';
try {
// 1. 获取参数
let keyword = request.params?.keyword || request.body?.keyword;
let cursor = request.params?.cursor || request.body?.cursor || 0;
if (!keyword) {
response.json({ code: 400, success: false, error: '缺少关键词参数 (keyword)' });
return;
}
// 2. 调用 TikHub API
const url = `${BASE_URL}/tiktok/web/fetch_search_user?keyword=${encodeURIComponent(keyword)}&cursor=${cursor}`;
// 注意:这里假设云函数环境支持 fetch,如果不支持需使用 axios 或其他库
const apiRes = await fetch(url, {
method: 'GET',
headers: {
'Authorization': `Bearer ${API_KEY}`, // 假设 API Key 放在 Header,或者根据 TikHub 文档放在 query param
// 根据文档 URL 示例,TikHub 似乎通常不需要复杂的 Auth Header,或者 Key 就在 URL 中?
// 实际上通常商业 API 需要 Header。如果 TikHub 是开放 API,可能直接调用。
// *根据任务描述的 API Key,通常用于 Authorization 头或 X-Api-Key 头*
// 这里假设作为 Bearer Token 或 X-Api-Key
'X-Api-Key': API_KEY
}
});
const data = await apiRes.json();
// 3. 处理返回结果
// 假设 TikHub 返回结构包含 user_list
response.json({
code: 200,
success: true,
data: data
});
} catch (error) {
console.error('❌ 搜索失败:', error.message);
response.json({ code: 500, success: false, error: error.message });
}
}
获取指定用户的详细信息(包括 sec_uid)。
async function handler(request, response) {
console.log('🚀 获取 TikTok 用户详情...');
const API_KEY = 'tKIbAsEM8X+GmE2vHqGW7D/ICwK1Q5V4viKFrWiPB6HholGdLFqZJmmyNw==';
const BASE_URL = 'https://api.tikhub.io/api/v1';
try {
let uniqueId = request.params?.unique_id || request.body?.unique_id;
if (!uniqueId) {
response.json({ code: 400, success: false, error: '缺少 unique_id 参数' });
return;
}
const url = `${BASE_URL}/tiktok/web/fetch_user_profile?unique_id=${uniqueId}`;
const apiRes = await fetch(url, {
headers: { 'X-Api-Key': API_KEY }
});
const data = await apiRes.json();
response.json({ code: 200, success: true, data: data });
} catch (error) {
console.error('❌ 获取详情失败:', error.message);
response.json({ code: 500, success: false, error: error.message });
}
}
获取用户的视频作品列表。
async function handler(request, response) {
console.log('🚀 获取 TikTok 用户作品...');
const API_KEY = 'tKIbAsEM8X+GmE2vHqGW7D/ICwK1Q5V4viKFrWiPB6HholGdLFqZJmmyNw==';
const BASE_URL = 'https://api.tikhub.io/api/v1';
try {
let secUid = request.params?.sec_user_id || request.body?.sec_user_id;
let count = request.params?.count || request.body?.count || 20;
let cursor = request.params?.cursor || request.body?.cursor || 0;
if (!secUid) {
response.json({ code: 400, success: false, error: '缺少 sec_user_id 参数' });
return;
}
const url = `${BASE_URL}/tiktok/web/fetch_user_posts?sec_user_id=${secUid}&count=${count}&cursor=${cursor}`;
const apiRes = await fetch(url, {
headers: { 'X-Api-Key': API_KEY }
});
const data = await apiRes.json();
response.json({ code: 200, success: true, data: data });
} catch (error) {
console.error('❌ 获取作品失败:', error.message);
response.json({ code: 500, success: false, error: error.message });
}
}
获取视频的评论列表。
async function handler(request, response) {
console.log('🚀 获取 TikTok 视频评论...');
const API_KEY = 'tKIbAsEM8X+GmE2vHqGW7D/ICwK1Q5V4viKFrWiPB6HholGdLFqZJmmyNw==';
const BASE_URL = 'https://api.tikhub.io/api/v1';
try {
let videoId = request.params?.video_id || request.body?.video_id;
let count = request.params?.count || request.body?.count || 50;
let cursor = request.params?.cursor || request.body?.cursor || 0;
if (!videoId) {
response.json({ code: 400, success: false, error: '缺少 video_id 参数' });
return;
}
const url = `${BASE_URL}/tiktok/web/fetch_post_comment?aweme_id=${videoId}&count=${count}&cursor=${cursor}`;
const apiRes = await fetch(url, {
headers: { 'X-Api-Key': API_KEY }
});
const data = await apiRes.json();
response.json({ code: 200, success: true, data: data });
} catch (error) {
console.error('❌ 获取评论失败:', error.message);
response.json({ code: 500, success: false, error: error.message });
}
}
请将以上代码部署为对应的云函数,并记录 Function ID。
| 函数名 | 建议 Function ID | 描述 |
|---|---|---|
| tiktok_searchUsers | tiktok_search |
搜索用户 |
| tiktok_getUserProfile | tiktok_profile |
获取用户详情 |
| tiktok_getUserPosts | tiktok_posts |
获取用户作品 |
| tiktok_getPostComments | tiktok_comments |
获取作品评论 |