我正在开发Smartsheet API,但我不是专业人士。 我需要一些帮助来获取特定表格中的所有信息。所有信息都是指所有列和它们的所有附件。我还需要帮助才能将附件下载到用户设备。在PHP中是否有任何一个模板? 我到目前为止已经从列中获取信息但这还不够。
$baseURL = "https://api.smartsheet.com/1.1";
$sheetsURL = $baseURL. "/sheets/";
$getSheetURL = $baseURL. "/sheet/xxx";
$rowsURL = $baseURL. "/sheet/xxx/rows";
$rowAttachmentsURL = $baseURL. "/sheet/3712544801089412/row/{{ROWID}}/attachments";
$getAttachmentURL = $baseURL ."/sheet/3712544801089412/attachment/{{ATTACHMENTID}}";
// Insert your Smartsheet API Token here
$accessToken = "xxx";
// Create Headers Array for Curl
$headers = array(
"Authorization: Bearer ". $accessToken,
"Content-Type: application/json"
);
// Connect to Smartsheet API to get Selected Sheet
$curlSession = curl_init($getSheetURL);
curl_setopt($curlSession, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curlSession, CURLOPT_RETURNTRANSFER, TRUE);
$getSheetResponseData = curl_exec($curlSession);
$sheetObj = json_decode($getSheetResponseData);
//attachment
echo "<h1>Sheet name: ". $sheetObj->name ."</h1>";
echo "<br>";
//table start
echo "<table>";
echo "<td>"."Attachment"."</td>";
foreach ($sheetObj->columns as $column) {
echo "<td>".$column->title ."</td>";
}
echo "<tr>";
foreach ($sheetObj->rows as $row) {
$curlSession = curl_init($rowAttachmentsURL);
curl_setopt($curlSession, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curlSession, CURLOPT_RETURNTRANSFER, TRUE);
$getAttachmentsResponse = curl_exec($curlSession);
// Assign response to variable
$attachments = json_decode($getAttachmentsResponse);
$rowAttachmentsURL = str_replace('{{ROWID}}', $row->id, $rowAttachmentsURL);
var_dump($attachments);
foreach ($row->attachments as $attachment) {
echo "<td>".$attachment->name."</td>";
}
foreach ($row->cells as $cell)
{
echo "<td>".$cell->value."</td>";
}
echo "<td></td><td></td><td></td>";
echo "</tr>";
}
echo "</table>";
curl_close($curlSession);
?>
答案 0 :(得分:1)
GitHub上有一个项目提供了用于使用Smartsheet API的php示例代码。听起来您正在寻找工作表中的所有列,以及使用附件。
要了解如何获取工作表的内容(包括列),我建议使用HelloGetSheet示例。此示例获取选定的工作表,然后输出该工作表的列和行。
在同一个项目中,还有sample code用于处理附件。除了显示如何上传附件外,此脚本还显示了如何从工作表中检索和下载附件。
更新:感谢您发布代码。您似乎拥有完成您所需要的主要构建块。我建议你移动你的列表行附件&#39;行循环内的部分。然后,对于到达行,您可以获取行ID并使用它来获取您的附件网址
$rowAttachmentsURL = str_replace('{{ROWID}}', $row->id, $rowAttachmentsURL);