api — обновить Cell SmartSheet 2.0 с помощью PHP-скрипта

Я нашел этот кусок кода для обновления ячейки в Сайт SmartSheet. Но я не понимаю, каковы значения в переменной поля. У кого-нибудь есть рабочий пример кода PHP для этого?

curl https://api.smartsheet.com/2.0/sheets/{sheetId}/rows?include=objectValue \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-X PUT \
-d '[{"id": "6572427401553796", "cells": [{"columnId": 7518312134403972,"objectValue": {"objectType": "PREDECESSOR_LIST","predecessors": [{"rowId": 567735454328708,"type": "FS","lag": {"objectType": "DURATION","days": 2,"hours": 4}}]}}]}]'

Мой текущий php-код выглядит следующим образом, и я просто хочу обновить какое-то значение на листе. Я не знаю, что добавить в поле varaible. Благодарю.

<?php

$baseURL = "https://api.smartsheet.com/2.0";
$getSheetURL = $baseURL. "/sheets/4925037959505xxx/rows?include=objectValue";
$accessToken = "34ouqtkxp0sutdv6tjbwtsxxxx";

$headers = array("Authorization: Bearer ". $accessToken ,  "Content-Type: application/json");$fields='[????]';

$ch = curl_init($getSheetURL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS,  $fields);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
$result = curl_exec($ch);
print_r($result);
?>

Спасибо

0

Решение

$fields полезная нагрузка JSON для запроса PUT. Подробности документированы здесь: http://smartsheet-platform.github.io/api-docs/#update-row-s

Я предлагаю вам проверить с помощью Почтальон или Расширенный Отдых Клиента прежде чем начать кодирование.

Также, include=objectValue имеет смысл только для GET так что нет смысла включать это для PUT запрос.

0

Другие решения

Это функция, которую я создал для обновления SmartSheet

  • $ ssID: идентификатор смарт-листа
  • $ ssRowID: идентификатор строки смарт-листа I
    хочу обновить
  • $ values: массив значений столбцов
  • $ columArray: is
    массив идентификаторов столбцов
  • $ config: массив, который я использую для хранения всех
    достоверная информация

Разбивка Json Data — это способ передачи столбцов, которые вы хотите обновить, и значений

  • {«id»: «‘. $ ssRowID.'»,

    • «клетка»:

    • [

    • {«columnId»: ‘. $ columnArray [‘ go ‘].’, «value»: «‘. $ values ​​[‘ go ‘].'»}},
    • {«columnId»: ‘. $ columnArray [‘ comments ‘].’, «value»: «‘. $ values ​​[‘ comment ‘].'»},
    • {«columnId»: ‘. $ columnArray [‘ data center ‘].’, «value»: «‘. $ values ​​[‘ datacenter ‘].'»}
    • ]
  • }

  • ID представляет строку, которую вы хотите обновить

  • ColumnID представляет каждый столбец, который вы хотите обновить, должен предоставить идентификатор столбца, а значение представляет значение, которое вы хотите вставить

{«columnId»: «идентификатор вашего столбца здесь», «значение»: «ваше значение здесь»}

function ssUpdate($ssID, $ssRowID, $values, $columnArray, $config){/*
*   update the Smart Sheet using the passed in sheet ID, Row ID and VALUES
*
*/

$sheetID = $ssID;
$SSAPIToken = $config['smartsheets']['SSAPIToken'];
$sheetsURL = "https://api.smartsheet.com/2.0/sheets/".$sheetID."/rows";
$data_json = '[{"id": "'.$ssRowID.'", "cells": [{"columnId": '.$columnArray['go'].',"value": "'.$values['go'].'"}, {"columnId": '.$columnArray['comments'].',"value": "'.$values['comment'].'"}, {"columnId": '.$columnArray['data center'].',"value": "'.$values['datacenter'].'"}]}]';

//echo $data_json."<br />";

// Create Headers Array for Curl
$headers = array(
"Authorization: Bearer " .$SSAPIToken,
'Content-Type: application/json',
'Content-Length: ' . strlen($data_json)
);

/*
*   connect to SS and update Sheet
*/

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$sheetsURL );
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,0);
curl_setopt($ch, CURLOPT_TIMEOUT, 400); //timeout in seconds
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_POSTFIELDS,$data_json);

$data = curl_exec($ch);
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);   //get status code
$curl_errno = curl_errno($ch);
$curl_error = curl_error($ch);
$information = curl_getinfo($ch);

curl_close($ch);

$ssArray = json_decode ($data, true); // make an XML object

/*
*   did connection work
*/

if ($status_code != 200) {
echo "Oh No! Update Error: (". $ssArray['errorCode'] .") ". $ssArray['message'] ."\n";
} else {

//var_dump($ssArray);

if ($ssArray['resultCode'] == 0){
echo "Updated: ".$values['store'];
}else{
echo "Oh No! Update Error: (". $ssArray['errorCode'] .") ". $ssArray['message'] ."\n";
}

}

}

Больше деталей: http://smartsheet-platform.github.io/api-docs/#add-row-s

0

По вопросам рекламы [email protected]