Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从PHP中的Smartsheet API获取所有列和附件_Php_Smartsheet Api_Smartsheet Api 1.1 - Fatal编程技术网

从PHP中的Smartsheet API获取所有列和附件

从PHP中的Smartsheet API获取所有列和附件,php,smartsheet-api,smartsheet-api-1.1,Php,Smartsheet Api,Smartsheet Api 1.1,我正在开发Smartsheet API,但我不是专业人士。 我需要一些帮助把所有的信息都写在一张纸上。对于所有信息,我指的是所有列及其所有附件。我还需要帮助,以便能够将附件下载到用户设备。有没有人用PHP做模板? 我到目前为止都是想从专栏中获取信息,但这还不够 $baseURL = "https://api.smartsheet.com/1.1"; $sheetsURL = $baseURL. "/sheets/"; $getSheetURL = $baseURL. "/sheet/xxx";

我正在开发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); 
                    ?>
$baseURL=”https://api.smartsheet.com/1.1";
$sheetsURL=$baseURL。“/张/”;
$getSheetURL=$baseURL。“/sheet/xxx”;
$rowsURL=$baseURL。“/sheet/xxx/行”;
$rowAttachmentsURL=$baseURL。“/sheet/3712544801089412/row/{{ROWID}}/attachments”;
$getAttachmentURL=$baseURL。“/sheet/3712544801089412/attachment/{{ATTACHMENTID}”;
//在此处插入Smartsheet API令牌
$accessToken=“xxx”;
//为Curl创建头数组
$headers=数组(
“授权:持有人”。$accessToken,
“内容类型:应用程序/json”
);
//连接到Smartsheet API以获取所选工作表
$curlSession=curl_init($getSheetURL);
curl_setopt($curlSession,CURLOPT_HTTPHEADER,$headers);
curl_setopt($curlSession,CURLOPT_RETURNTRANSFER,TRUE);
$getSheetResponseData=curl\u exec($curlSession);
$sheetObj=json_decode($getSheetResponseData);
//附件:
echo“图纸名称:”$sheetObj->name.“;
回声“
”; //表开始 回声“; 回显“.”“附件“; foreach($sheetObj->columns as$column){ 回显“$column->title.”; } 回声“; foreach($sheetObj->行作为$row){ $curlSession=curl_init($rowAttachmentsURL); curl_setopt($curlSession,CURLOPT_HTTPHEADER,$headers); curl_setopt($curlSession,CURLOPT_RETURNTRANSFER,TRUE); $getAttachmentsResponse=curl\u exec($curlSession); //将响应分配给变量 $attachments=json_decode($getAttachmentsResponse); $rowatchmentsurl=str_replace(“{{ROWID}}”,$row->id,$rowatchmentsurl); var_dump(附件); foreach($row->附件为$attachment){ 回显“$attachment->name.”; } foreach($row->cells作为$cell) { 回显“$cell->value.”; } 回声“; 回声“; } 回声“; curl_close($curl session); ?>
上有一个项目提供了使用Smartsheet API的php示例代码。听起来您希望获得工作表中的所有列,以及处理附件

要了解如何获取工作表的内容,包括列,我建议使用示例。此示例获取选定的工作表,然后输出该工作表的列和行

在同一个项目中,还有一个用于处理附件的工具。除了显示如何上载附件外,此脚本还显示如何从工作表中检索和下载附件

更新:感谢您发布代码。你看起来拥有完成你所寻找的目标所需的主要构件。我建议将“列表行附件”部分移动到行循环中。然后,对于reach行,您可以获取行ID并使用该ID获取附件URL,如下所示

$rowAttachmentsURL = str_replace('{{ROWID}}', $row->id, $rowAttachmentsURL);

我使用的代码是您提到的GitHub中的两个。我已经取出了列和行,但我无法将它们与附件文件中的代码结合起来。因此,如果您能给我一个示例,说明如何将附件代码放入其他代码中,以便我可以从smartsheet中获取所有信息,那就太好了。谢谢。@user2979664您可以发布您尝试过的代码吗?我们可以看到问题出在哪里?请查看顶部的代码。我的计划是制作一个包含附件和其他信息的表格,就像smartsheet一样,然后在附件中添加一个链接,这样就有机会将文件下载到任何设备上。我不需要添加新工作表、上载等所有内容。@user2979664谢谢您发布代码。我会给我的答案加上一些建议。同时,您将希望撤销您发布的访问令牌,并生成一个新的。感谢您的帮助,但现在我收到以下错误:errorCode“:1004,“message:”您无权执行此操作。为什么?