0

我正在使用 kobo REST API,我可以从表单和通过 API 提交的数据中获取结构的信息,但是当我尝试通过 POST 服务将数据发送到表单时,kobo 返回以下消息:“您的数据,例如 None 已经提交。”。

有没有办法使用其 API 将 POST 数据发送到 kobotoolbox 表单?

我尝试使用以下 POST 请求发送数据:

curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{ \
  "name": "Foo" \
}' 'https://kf.kobotoolbox.org/assets/{form_id}/submissions/'

{form_id}我在 kobotoolbox 中的表单中的 id 在哪里

回应是:

{
  "detail": "Your data for instance None has been already submitted."
}
4

1 回答 1

3

要提交您需要 POST 到的数据https://[kobocat url]/api/v1/submissions,例如https://kc.kobotoolbox.org/api/v1/submissions. 您尝试的端点用于检索提交的数据。

这将起作用(对于包含一个first_namelast_name问题的表单:

curl -X POST \
  https://kc.kobotoolbox.org/api/v1/submissions.json \
  -H 'Authorization: Token <yourAPItoken>' \
  -H 'Content-Type: application/json' \
  -d '    {
        "id": "<kpi asset ID>",
        "submission":

            {
                "last_name": "Suresh",
                "first_name":"Ameen",
                "meta": {
                    "instanceID": "uuid:8992c3c2-3418-4ba9-a8e2-b00e03ea36b6"
                }

            }
    } '

<kpi asset ID>在这种情况下是指在 kobocat 中创建的唯一表单 ID。只要您在常规界面中上传/创建表单并部署它,此 ID应该与 kpi 资产 ID 相同。

您可以通过转至 找到该 ID https://kf.kobotoolbox.org/assets/<kpi asset ID>/。就我而言,我得到了这个:

{
    "url": "https://kf.kobotoolbox.org/assets/aCNoKPdCX8gqcu4bHrHkUL/",
...
    "deployment__identifier": "https://kc.kobotoolbox.org/<username>/forms/aCNoKPdCX8gqcu4bHrHkUL",
...
    "uid": "aCNoKPdCX8gqcu4bHrHkUL",

    ]
}
于 2019-10-04T14:35:14.863 回答