1

私は 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); 
                    ?>
4

1 に答える 1

1

GitHubには、Smartsheet API を操作するための php サンプル コードを提供するプロジェクトがあります。添付ファイルを操作するだけでなく、シート内のすべての列を取得しようとしているようです。

列を含むシートの内容を取得する方法を確認するには、HelloGetSheetサンプルをお勧めします。このサンプルは、選択されたシートを取得し、そのシートの列と行を出力します。

同じプロジェクト内には、添付ファイルを操作するためのサンプル コードもあります。このスクリプトは、添付ファイルをアップロードする方法を示すだけでなく、シートから添付ファイルを取得してダウンロードする方法も示しています。

更新:コードを投稿していただきありがとうございます。あなたは、あなたが探しているものを達成するために必要な主要な構成要素を持っているように見えます. 「List Row Attachments」セクションを行ループ内に移動することをお勧めします。次に、リーチ行の場合、行 ID を取得し、それを使用して添付ファイルの URL を次のように取得できます。

$rowAttachmentsURL = str_replace('{{ROWID}}', $row->id, $rowAttachmentsURL);
于 2015-02-10T18:06:09.073 に答える