如何使用Trello的Rest API获得董事会的所有行动?

Ell*_*ica 4 api rest paginate trello

我想得到一个董事会的所有动作,但是Trello将结果限制为1000。我知道正确的处理方法是分页。我已经尝试了beforepage作为关键字:

基本通话:

https://api.trello.com/1/board/[boardID]/
         ?key=[key]&token=[token]
         &actions=commentCard&actions_limit=1000
Run Code Online (Sandbox Code Playgroud)

备择方案:

Before

https://api.trello.com/1/board/[boardID]/
         ?key=[key]&token=[token]
         &actions=commentCard&actions_limit=1000&
         before=[oldest_returned_action's_date]
Run Code Online (Sandbox Code Playgroud)

Page

https://api.trello.com/1/board/[boardID]/
         ?key=[key]&token=[token]
         &actions=commentCard&actions_limit=1000&
         page=[page_number]
Run Code Online (Sandbox Code Playgroud)

结果永远不会改变---我总是得到[限制]个操作数,无论调用什么,它们总是一样的。我检查了返回日期中的日期,他们当然不尊重该before参数。我什至试图降低限额,以确保我没有试图返回比自己拥有的更多的东西。问题仍然存在。

如何正确获得Trello板的所有操作?

edd*_*ies 6

动作按时间倒序排列(从最新到最旧),因此要翻阅板上的动作,您可以使用类似以下的命令:

curl "https://api.trello.com/1/boards/${BOARD_ID}/actions/?key=${TRELLO_API_KEY}&token=${TRELLO_TOKEN}&limit=1000"
Run Code Online (Sandbox Code Playgroud)

然后,从上述方法返回的数组的最后一个元素中,选择dateor id,并将其作为before参数传递给下一个调用,例如:

curl "https://api.trello.com/1/boards/${BOARD_ID}/actions/?key=${TRELLO_API_KEY}&token=${TRELLO_TOKEN}&limit=1000&before=${DATE_OR_ID_OF_LAST_ACTION}"
Run Code Online (Sandbox Code Playgroud)

然后重复,将最后一个动作的iddate作为后续before参数传入。

参考文献: