【问题标题】:How to write filter {key} for a 'get items as xlsx' request via Podio API如何通过 Podio API 为“get items as xlsx”请求编写过滤器 {key}
【发布时间】:2017-03-22 12:44:54
【问题描述】:

我会先解决这个问题:我是一名业余程序员(充其量)...我对 API 的工作原理有所了解,但几乎没有直接操作 podio API 的经验(即我使用zapier/globiflow 很多,不要写任何 php/ruby)。我相信其他人可以通过 API 文档解决这个问题,但我做不到。所以我真的希望有人可以帮助澄清并给出更详细的说明。

我的总体目标:

我经常从 podio 前端将 podio 文件导出为 xlsx。我和我的团队使用它在 Excel 中执行常规数据分析任务。我想通过自动将更新的podio导出到我的excel中来简化这个过程。我的计划是通过 excel VBA 来做到这一点。我从其他搜索中了解到可以使用 VBA 发送 HTTP 请求,所以我想确保我了解我需要发送到 Podio API 以获得我需要的内容。如何在 excel VBA 中编写 HTTP 请求的方法超出了这个问题的有意范围(尽管我会接受任何帮助!)

到目前为止我所做的尝试:

我知道“get items as xlsx”是 podio API 的一部分:https://developers.podio.com/doc/items/get-items-as-xlsx-63233

但是我似乎无法让它在该页面上的沙盒环境中工作,以便我可以找出有效的请求 URL。我收到这条消息:'无效的过滤键'......因为我不知道如何填写该字段。该页面上的信息对此尚不清楚。在引用的'views page' 上也不是很明显。没有可效仿的例子!

我什至不想做任何过滤。我只想获取应用程序中的所有项目。或者我可以给它一个预先存在的 view_id,但如果没有 {key}

,这似乎也不起作用

我意识到这可能非常简单。请帮助一个菜鸟? :)

【问题讨论】:

    标签: podio


    【解决方案1】:

    很遗憾,交互式 API 沙盒的行为不适合此特定端点。对于过滤,此 API 端点需要查询字符串参数,其中字段-值对由整数字段 ID 和每个字段的允许值组成。按字段过滤是完全可选的。看起来这个沙盒页面不是为这种带有动态查询字符串字段名称的操作而构建的;无论您在该页面上哪里看到 {key} 字段,都表示您将用于过滤的任何字段 ID 的占位符。

    如果您想试验这个端点,我建议您先尝试另一个专用的 HTTP 客户端。我能够使用命令行程序wget 获得这个简单的示例:

    wget --header="Authorization:OAuth2 $MY_SECRET_TOKEN" \
         --content-disposition \
        "https://api.podio.com/item/app/16476850/xlsx/"
    

    在这种情况下,wget 下载了一个 Excel 文件,其中包含我的应用程序中的所有项目,但未应用任何过滤。额外的--content-disposition 参数告诉wget 将输出保存为一个文件,该文件的名称使用服务器的Content-Disposition 响应标头中的信息。

    应用过滤器:

    wget --header="Authorization:OAuth2 $MY_SECRET_TOKEN" \
         --content-disposition \
        "https://api.podio.com/item/app/16476850/xlsx/?130654431=galaxy"
    

    在这种情况下,下载的文件将结果过滤到字段 id 130654431(这是一个类别字段)包含值 galaxy 的项目。

    【讨论】:

    • 感谢您的回答!如果应用程序相当大,您是否知道此 API 是否无法工作(即超时)?我已经能够在我的帐户上收到一个小型测试应用程序的文件,但是当我尝试一个包含约 1400 个项目的较大应用程序时,它会超时。我还不确定超时是否与 API 或我用来从 Excel VBA 中调用它的方法有关。
    • 通过进一步的尝试,我能够阻止它超时,但它只从应用程序中下载了 1,000 个项目,超过 1,400 个。知道这是否是对 API 的硬性限制?
    • 是的,最多可以从该 API 返回 1000 个项目。此 API 应该接受可选参数 limitoffset,您可以使用它们来有效地对结果进行分页。如果批量大小为 1000 太慢,您可能需要尝试较小的 limit 值,并通过增加 offset 值迭代多次调用,直到获得所有结果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-17
    • 2021-05-02
    • 2021-11-21
    相关资源
    最近更新 更多