PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了php-更新smartsheet中的单元格大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在尝试使用PHP更新现有smartSheet工作表中的某些单元格.添加新行没问题,但是我无获取正确的JSON进行更新.

这时我的代码

$ch = curl_init("https://api.smartsheet.com/1.1/sheet/1234567890/rows/");

$header = array("Authorization: Bearer xxxxxxxxxxx", 
            "Content-Type: application/json",
            "Assume-User: xxxx%40xxxx.com");
$name = 'MyName';
$fields =  '{"rownumber":1, "columnId": 1234567890, "value": "'.$name.'", "displayValue": "'.$name.'"}';

curl_setopt($ch, CURLOPT_RETURNTRANSFER, truE);
curl_setopt($ch, CURLOPT_httpHEADER, $header);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, falsE);
curl_setopt($ch, CURLOPT_POSTFIELDS,  $fields);
curl_setopt($ch, CURLOPT_POST, 1);
$result = curl_exec($ch);

结果是:

 "{"errorCode":1008,"message":"Unable to parse request. The following error occurred: UnkNown attribute \"columnId\" found at line 1, column 45"}"

我尝试了许多选项,但无法通过api文档解决这个问题,也找不到其他具有相功能PHP示例.有人知道我如何连续更新一个特定的单元格吗?

解决方法:

文件

可以找到用于更新行的api文档here.它从命令行使用curl给出了以下示例:

curl https://api.smartsheet.com/1.1/row/{rowID}/cells \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-X PUT \
-d '[ {"columnId": 3738748463671172, "value": "Revision 2"}, {"columnId": 5427598323935108, "value": "On Time", "Strict": falsE} ]'

PHP示例中的更改内容

根据上述文档,我们将需要更改您的PHP示例以发送数据.因此,PHP示例中的以下项将需要更改:

>网址必须采用https://api.smartsheet.com/1.1/row/{rowID}/cells的格式,其中{rowID}被替换为实际的行ID.
>我们需要发送一个单元格数组.例如,以下是两个单元格的数组:[{columnId”:13214124123213,“ value”:“ my new text1”},{columnId”:1231231241238,“ value”:“ my new text2”}]
>我们需要将数据作为PUT请求发送.

解决方

虑到这一点,我们可以将代码更改为以下内容

<?PHP
$ch = curl_init("https://api.smartsheet.com/1.1/row/4407426335172484/cells");

$header = array("Authorization: Bearer 1238123lkjafasdilfasflkj", 
            "Content-Type: application/json",
            "Assume-User: some%40email.com");
$name = 'MyName';
$fields =  '[{"columnId": 4431344890603396, "value": "'.$name.'", "displayValue": "'.$name.'"}]';

curl_setopt($ch, CURLOPT_RETURNTRANSFER, truE);
curl_setopt($ch, CURLOPT_httpHEADER, $header);
curl_setopt($ch, CURLOPT_POSTFIELDS,  $fields);
curl_setopt($ch, CURLOPT_CUSTOMrequEST, "PUT");
$result = curl_exec($ch);
print_r($result);
?>

额外的信息

您可能想知道rowId和columnId的来源.需要通过获取工作表从API检索这两个ID.可以使用Curl,Advanced Rest Client for Chrome或通过PHP来完成. PHP示例如下:

<?PHP
$ch = curl_init("https://api.smartsheet.com/1.1/sheet/1837937135511428");

$header = array("Authorization: Bearer 123l1k2j321lkjasdfa", 
            "Content-Type: application/json",
            "Assume-User: some%40email.com");

curl_setopt($ch, CURLOPT_RETURNTRANSFER, truE);
curl_setopt($ch, CURLOPT_httpHEADER, $header);
$result = curl_exec($ch);
print_r($result);
?>

该请求将输出类似以下内容,并列出列ID和行ID.

{
   "id":1837937135511428,
   "name":"test",
   "version":3,
   "columns":[
      {
         "id":4431344890603396,
         "index":0,
         "title":"PriMary column",
         "type":"TEXT_numbER",
         "priMary":true,
         "width":150
      },
      {
         "id":8934944517973892,
         "index":1,
         "title":"column2",
         "type":"TEXT_numbER",
         "width":150
      },
      {
         "id":138851495765892,
         "index":2,
         "title":"column3",
         "type":"TEXT_numbER",
         "width":150
      },
      {
         "id":4642451123136388,
         "index":3,
         "title":"column4",
         "type":"TEXT_numbER",
         "width":150
      },
      {
         "id":2390651309451140,
         "index":4,
         "title":"column5",
         "type":"TEXT_numbER",
         "width":150
      },
      {
         "id":6894250936821636,
         "index":5,
         "title":"column6",
         "type":"TEXT_numbER",
         "width":150
      }
   ],
   "rows":[
      {
         "id":4407426335172484,
         "rownumber":1,
         "cells":[
            {
               "columnId":4431344890603396,
               "type":"TEXT_numbER",
               "value":"My Name",
               "displayValue":"My Name"
            },
            {
               "columnId":8934944517973892,
               "type":"TEXT_numbER",
               "value":"test",
               "displayValue":"test"
            }
         ],
         "expanded":true,
         "createdAt":"2014-06-23T09:32:02-07:00",
         "modifiedAt":"2014-06-23T09:48:55-07:00"
      }
   ],
   "accessLevel":"owneR",
   "ganttEnabled":false,
   "dependenciesEnabled":false,
   "permalink":"https://app.smartsheet.com/b/home?lx=v75AYzRUICSXF_2oV6V_LA",
   "workspace":{
      "id":6724185599829892,
      "name":"Test"
   },
   "createdAt":"2014-06-23T09:28:58-07:00",
   "modifiedAt":"2014-06-23T09:48:55-07:00"
}

大佬总结

以上是大佬教程为你收集整理的php-更新smartsheet中的单元格全部内容,希望文章能够帮你解决php-更新smartsheet中的单元格所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: