我正在研究一个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);
}
}
}
答案 0 :(得分:2)
您的代码看起来不错。如果正在创建工作表,那么您的通话结构是好的。你可能只有一个不正确的templateId。你从哪里得到模板ID?
通过Smartsheet界面,您可以在Sheet Properties中找到模板ID。 Smartsheet帮助部分中的This article描述了在哪里可以找到工作表属性。在属性窗口中,您将获取工作表ID的值,并将其用于创建工作表调用中的fromId
值。
答案 1 :(得分:0)
@stmcallister。究竟。已复制工作表结构,但不复制内容。
模板ID = 2774566423553924,最新表格ID = 8533387423049604。
谢谢,
格伦