2

我使用 quickbase 创建了包含以下 3 个字段的表

姓名,电子邮件,职位

现在我正在尝试通过带有 quickbase 的表 id 插入表中。

这是文档 API 链接 API 链接

这是 API 卷曲文档

curl -X POST 'https://api.quickbase.com/v1/records' \
-H 'QB-Realm-Hostname: {QB-Realm-Hostname}' \
-H 'User-Agent: {User-Agent}' \
-H 'Authorization: {Authorization}' \
-d {}

这是示例请求

{
  "to": "bck7gp3q2",
  "data": [
    {
      "6": {
        "value": "This is my text"
      },
      "7": {
        "value": 10
      },
      "8": {
        "value": "2019-12-18T08:00:00.000Z"
      },
      "9": {
        "value": [
          "a",
          "b"
        ]
      },
      "10": {
        "value": true
      },
      "11": {
        "value": "user@quickbase.com"
      },
      "12": {
        "value": "www.quickbase.com"
      },
      "13": {
        "value": [
          {
            "id": "123456.ab1s"
          },
          {
            "id": "254789.mkgp"
          },
          {
            "id": "789654.vc2s"
          }
        ]
      }
    }
  ],
  "fieldsToReturn": [
    6,
    7,
    8,
    9,
    10,
    11,
    12,
    13
  ]
}

到目前为止,这是我的努力 当我运行下面的代码时,出现以下错误

{"data":[],"metadata":{"createdRecordIds":[],"lineErrors":{"1":["Can not find record by ID \"My First post\"."]},"totalNumberOfRecordsProcessed":1,"unchangedRecordIds":[],"updatedRecordIds":[]}}{"data":[],"metadata":{"createdRecordIds":[],"lineErrors":{"1":["Can not find record by ID \"My First post\"."]},"totalNumberOfRecordsProcessed":1,"unchangedRecordIds":[],"updatedRecordIds":[]}}

这是我的代码

<?php

$access_t ="my_access_token-goes here";
$url="https://api.quickbase.com/v1/records";
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $url);
$useragent ='my-user-agent goes here';

$quicbase_domain= 'my-quickbase-domain-goes-here';

$data='

{
  "to": "my-table-id-goes-here",
  "data": [
    {


      "1": {
        "value": "nancy more"
      },
      "2": {
        "value": "nancy@gmail.com"
      },

"3": {
        "value": "My First post"
      }

    }
  ]
  
}

';

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"QB-Realm-Hostname: quicbase_domain",
"User-Agent: $useragent",
"Authorization: QB-USER-TOKEN $access_t",
'Content-Type:application/json'
));  

curl_setopt($ch,CURLOPT_CUSTOMREQUEST,'POST');
curl_setopt($ch,CURLOPT_POSTFIELDS, $data);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
 echo $response = curl_exec($ch);

curl_close($ch);

print_r($response);
4

1 回答 1

1

插入和更新都使用相同的端点,Quick Base 使用包含键字段来区分两者。在我的经验中,字段 ID #3 一直是“记录 ID#”字段;Quick Base 自动为每个新表创建的字段之一以及它用作默认键字段的字段。由于您的数据数组包含字段 ID #3 的值,因此 Quick Base 将您的请求解释为更新,它找不到 ID 为“My First Post”的记录。还有一个问题是字段 ID #3 需要一个数字,但 Quick Base 的错误响应不够复杂,无法给出反馈。

我认为您的请求的问题是您的字段 ID 错误。1、2、3分别对应自动生成的“创建日期”、“修改日期”、“记录ID#”字段。您为表创建的字段可能从字段 ID #6 开始。如果您进入 Quick Base 并查看表格的属性,您应该能够看到字段列表及其字段 ID(如果您没有看到字段 ID 列,您可以选择在高级选项中显示它) . 在您的请求中使用正确的字段 ID,它应该可以按预期工作。

于 2020-09-28T18:01:01.263 回答