从聚会中获得 200 多个小组成员 API

Get more than 200 group members from the Meetup API

使用 Meetup API,我能够成功地从任何给定的组中获得恰好 200 名成员。有很多团体的成员比这还多。我想知道如何获得它们。

问题
我没能找到记录 &page=### 的位置。我假设它设置了 Meetup 响应中返回的结果数量。

我已经尝试使用,例如,&page=1000,但我仍然只得到 200 个成员。

要求URL
我正在使用这个 URL 来请求数据:

let meetupReqUrl = "https://api.meetup.com/2/members?&sign=true&group_id=" 
                  + groupId 
                  + "&key=" 
                  + apiKeys.meetup
                  + "&order=joined"
                  + "&page=1000"

这个版本也 returns 刚好有 200 个成员:

let meetupReqUrl = "https://api.meetup.com/2/members?&sign=true&group_id=" 
                  + groupId 
                  + "&order=joined"
                  + "&page=1000" 
                  + "&key=" 
                  + apiKeys.meetup

可能值得注意的是,&order=joined 根本没有对结果进行排序。这让我相信我在形成 URL.

时做错了什么

相关文档
Meetup 的 /2/members API 是 documented here.

您通过 API 一次 可以获得的最大结果数 似乎是 200 - 请参阅 https://github.com/jkutianski/meetup-api/wiki#limits

但是您可以根据 http://www.meetup.com/meetup_api/#making_request 提出多个请求。它说你需要使用 page 和 offset 参数。来自 meetup.com link:

page -- 用于结果的页面大小(每个响应中的最大结果数)

offset -- 结果到 return 的起始页。例如,当 page = 10 时,指定 "offset=0" 将返回记录 1-10,"offset=1" 将返回记录 11-20,等等

(我再次回答是因为我没有足够的声誉来编辑我之前的回答,因为它变成了评论)。

offsetpage 的工作方式并不那么直观。它们实际上是相互依赖和相乘的。例如,如果 page 设置为 20,而 offset 为 2,您将向下跳过 40 个条目。我使用 API console 解决了这个问题,因为我找不到任何指定它们关系的文档。

这也解释了为什么偏移量不能单独工作。

但请注意,如果顺序设置为时间,偏移将不起作用。 order=time。 此外,如果您按时间排序响应,它会减少返回结果的数量(大约 80%),因此如果您设置 page=20,您将收到大约 16 个结果。