Я нашел этот кусок кода для обновления ячейки в Сайт 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);
?>
Спасибо
$fields
полезная нагрузка JSON для запроса PUT. Подробности документированы здесь: http://smartsheet-platform.github.io/api-docs/#update-row-s
Я предлагаю вам проверить с помощью Почтальон или Расширенный Отдых Клиента прежде чем начать кодирование.
Также, include=objectValue
имеет смысл только для GET
так что нет смысла включать это для PUT
запрос.
Это функция, которую я создал для обновления SmartSheet
Разбивка Json Data — это способ передачи столбцов, которые вы хотите обновить, и значений
{«id»: «‘. $ ssRowID.'»,
«клетка»:
}
ID представляет строку, которую вы хотите обновить
{«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