Facebook Graph API 是 Facebook 提供的官方接口,允许开发者通过编程方式访问 Facebook 平台上的数据。当使用 API 获取用户或页面的帖子时,确实存在默认返回数量限制的情况。
您可以通过分页参数获取更多数据:
// 初始请求
const response = await fetch(
`https://graph.facebook.com/v12.0/{page-id}/posts?access_token={access-token}&limit=100`
);
// 处理分页
let nextPageUrl = response.paging.next;
while (nextPageUrl) {
const nextResponse = await fetch(nextPageUrl);
const nextData = await nextResponse.json();
// 处理数据...
nextPageUrl = nextData.paging?.next;
}
通过指定字段来减少单条数据大小,从而可能获取更多数据:
fetch(
`https://graph.facebook.com/v12.0/{page-id}/posts?fields=id,message,created_time&limit=100&access_token={access-token}`
)
对于需要大量数据的场景,可以使用批处理:
const batchRequests = [];
for (let i = 0; i < 5; i++) {
batchRequests.push({
method: 'GET',
relative_url: `v12.0/{page-id}/posts?offset=${i * 100}&limit=100`
});
}
const batchResponse = await fetch(
`https://graph.facebook.com/v12.0/?batch=${JSON.stringify(batchRequests)}&access_token={access-token}`
);
通过合理使用分页和批处理技术,您可以有效地绕过单次请求 100 条的限制,获取所需的全部帖子数据。