Drupal 7 从Drupal模块创建工作表

Drupal 7 从Drupal模块创建工作表,drupal-7,smartsheet-api,smartsheet-api-1.1,Drupal 7,Smartsheet Api,Smartsheet Api 1.1,我正在开发一个Drupal模块,以便在发布特定类型的Drupal节点时创建一个Smartsheet 工作表创建得很好,但没有使用我用formId变量指定的模板 我做错了什么 谢谢 代码是: <?php function smartsheet_node_insert($node) { if ($node->type == 'oa_space') { // Initialize URL Variables $baseURL = "https://api.smart

我正在开发一个Drupal模块,以便在发布特定类型的Drupal节点时创建一个Smartsheet

工作表创建得很好,但没有使用我用formId变量指定的模板

我做错了什么

谢谢

代码是:

<?php

function smartsheet_node_insert($node) {
  if ($node->type == 'oa_space') {

    // Initialize URL Variables
    $baseURL = "https://api.smartsheet.com/1.1";
    $sheetsURL = $baseURL ."/sheets/";
    $columnURL = $baseURL. "/sheet/" . $node->nid . "/columns";

    // Insert your Smartsheet API Token here
    $accessToken = "[my api token]";

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


    // Create new sheet
    $theSheet = array(
      'name' => $node->title,
      'fromId' => '[template id]',
    );

    $postfields = json_encode($theSheet);

    // Connect to Smartsheet API
    $curlSession = curl_init($sheetsURL);
    curl_setopt($curlSession, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curlSession, CURLOPT_POST, 1);
    curl_setopt($curlSession, CURLOPT_POSTFIELDS, $postfields);
    curl_setopt($curlSession, CURLOPT_RETURNTRANSFER, TRUE);

    $createResponse = curl_exec($curlSession);

    // Assign response to PHP object
    $createObj = json_decode($createResponse);

    if (curl_getinfo($curlSession, CURLINFO_HTTP_CODE) != 200) {

    //if (curl_errno($curlSession)) {
        drupal_set_message("Oh No! Could not create sheet " . $node->title . "because " . $createObj->message);
    } else {
        // Tell the user!
        drupal_set_message("A Smartsheet has been created for the " . $node->title . " project");

        // close curlSession
        curl_close($curlSession);
    }
  }
}

您的代码看起来不错。如果正在创建工作表,则调用的结构良好。很可能您的templateId不正确。你从哪里得到模板Id的


通过Smartsheet界面,您可以在中找到模板Id。在Smartsheet帮助部分中,介绍了在何处查找图纸属性。在“属性”窗口中,您将获取工作表ID的值,并将其用于创建工作表调用中的
fromId
值。

@stmcallister。确切地将复制图纸结构,但不会复制内容

模板ID=2774566423553924,最新图纸ID=8533387423049604

谢谢


Glenn

您好,是的,我的模板ID是正确的,我完全按照您链接文章中的描述复制了它。我仍然无法使其工作…您的新工作表是否与模板具有相同的列名,但模板中的数据不存在?如果您仍然有问题,请将模板ID和您最近使用代码从该模板创建的工作表的ID发送给我们,地址为api@smartsheet.com-这样我们可以帮助排除故障。