cách chèn đúng vào quickbase thông qua Curl trong php

Sep 28 2020

Tôi đã tạo bảng với 3 trường sau bằng quickbase

tên, email, bài đăng

Bây giờ tôi đang cố gắng chèn vào bảng thông qua id bảng với quickbase.

đây là tài liệu API Liên kết API lINK

đây là tài liệu API Curl

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 {}

đây là yêu cầu mẫu

{
  "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": "[email protected]"
      },
      "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
  ]
}

Đây là nỗ lực của tôi cho đến nay Khi tôi chạy mã dưới đây, tôi gặp lỗi sau

{"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":[]}}

đây là mã của tôi

<?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": "[email protected]"
      },

"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);

Trả lời

1 NathanHawe Sep 29 2020 at 01:01

Cùng một điểm cuối được sử dụng cho cả chèn và cập nhật và Quick Base sử dụng bao gồm trường khóa để phân biệt giữa hai trường. Trong trường kinh nghiệm của tôi, ID # 3 luôn là trường "ID Bản ghi #"; một trong các trường Quick Base tự động tạo cho mọi bảng mới và trường nó sử dụng làm trường khóa mặc định. Vì mảng dữ liệu của bạn chứa giá trị cho trường ID # 3, Quick Base đang diễn giải yêu cầu của bạn dưới dạng bản cập nhật mà nó không thể tìm thấy bản ghi nào có ID "Bài đăng đầu tiên của tôi". Cũng có vấn đề là trường ID # 3 mong đợi một con số, nhưng phản hồi lỗi của Quick Base không đủ phức tạp để đưa ra phản hồi đó.

Tôi nghĩ rằng vấn đề với yêu cầu của bạn là bạn có ID trường sai. 1, 2 và 3 tương ứng với các trường được tạo tự động của "Ngày tạo", "Ngày sửa đổi" và "ID bản ghi #". Các trường bạn đã tạo cho bảng của mình có thể bắt đầu từ trường ID # 6. Nếu bạn vào Quick Base và xem các thuộc tính của bảng, bạn sẽ có thể thấy danh sách các trường và Id trường của chúng (nếu bạn không thấy cột Field Id, bạn có thể chọn hiển thị nó trong Tùy chọn nâng cao) . Sử dụng các ID trường chính xác trong yêu cầu của bạn và nó sẽ hoạt động như mong đợi.