尝试修改 Smartsheet 时出现错误 1030
Error 1030 when I try to modify a Smartsheet
我有一个 php 页面,其中列出了不同用户的智能表内容。
它使用工作名称、开始日期和交付日期等信息填充 table。但我也希望用户能够在工作完成后勾选一个复选框。
当复选框被选中时,另一个(非常基本的)页面被调用以将新值存储到智能表中。
此页面由如下基本获取命令触发:
http://myurl/index.php?colId=XXX&rowId=YYY&status=checked
其中使用的变量是:
colId=The ID of the column to be changed
rowId=The ID of the row to be changed
checked=If the checkbox is checked
status=The value stored in the smartheet
(1 for a checked checkbox and '' for an unchecked checkbox)
这是index.php的代码(从this post偷来的):
$inputToken = "myInputToken";
$colId=$_GET['colId'];
$rowId=$_GET['rowId'];
if($_GET['status'] == "checked"){
$status='1';
}
else{
$status='';
}
$ch = curl_init("https://api.smartsheet.com/1.1/row/".$rowId./cells");
$header = array("Authorization: Bearer ".$inputToken,
"Content-Type: application/json",
"Assume-User: myName%40myDomainName");
$fields = '[{"columnId": $colId, "value": "'.$status.'", "displayValue": "'.$status.'"}]';
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
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);
"input token" 由与 "Assume-User" 电子邮件相同的电子邮件生成。
我可以在登录后更改常规智能表中的值。
但是当我 运行 网页时我仍然得到这个错误:
{"errorCode":1030,"message":"You are unable to assume the user specified."}
有人知道我做错了什么吗?
任何帮助将不胜感激!
有两种方法可以作为用户登录。首先,您可以使用该用户帐户的令牌直接登录。 headers 看起来像:
$header = array('Authorization: Bearer '.$userToken,
"Content-Type: application/json");
第二个选项是使用管理员帐户以另一个用户身份登录。为此,您可以使用 assume-user header 和管理员令牌。 headers 看起来像:
$header = array('Authorization: Bearer '.$adminToken,
'Content-Type: application/json',
'Assume-User: someUser%40someDomain.com');
可以找到 assume-user 的文档 here。
我有一个 php 页面,其中列出了不同用户的智能表内容。 它使用工作名称、开始日期和交付日期等信息填充 table。但我也希望用户能够在工作完成后勾选一个复选框。
当复选框被选中时,另一个(非常基本的)页面被调用以将新值存储到智能表中。
此页面由如下基本获取命令触发:
http://myurl/index.php?colId=XXX&rowId=YYY&status=checked
其中使用的变量是:
colId=The ID of the column to be changed
rowId=The ID of the row to be changed
checked=If the checkbox is checked
status=The value stored in the smartheet
(1 for a checked checkbox and '' for an unchecked checkbox)
这是index.php的代码(从this post偷来的):
$inputToken = "myInputToken";
$colId=$_GET['colId'];
$rowId=$_GET['rowId'];
if($_GET['status'] == "checked"){
$status='1';
}
else{
$status='';
}
$ch = curl_init("https://api.smartsheet.com/1.1/row/".$rowId./cells");
$header = array("Authorization: Bearer ".$inputToken,
"Content-Type: application/json",
"Assume-User: myName%40myDomainName");
$fields = '[{"columnId": $colId, "value": "'.$status.'", "displayValue": "'.$status.'"}]';
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
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);
"input token" 由与 "Assume-User" 电子邮件相同的电子邮件生成。 我可以在登录后更改常规智能表中的值。 但是当我 运行 网页时我仍然得到这个错误:
{"errorCode":1030,"message":"You are unable to assume the user specified."}
有人知道我做错了什么吗?
任何帮助将不胜感激!
有两种方法可以作为用户登录。首先,您可以使用该用户帐户的令牌直接登录。 headers 看起来像:
$header = array('Authorization: Bearer '.$userToken,
"Content-Type: application/json");
第二个选项是使用管理员帐户以另一个用户身份登录。为此,您可以使用 assume-user header 和管理员令牌。 headers 看起来像:
$header = array('Authorization: Bearer '.$adminToken,
'Content-Type: application/json',
'Assume-User: someUser%40someDomain.com');
可以找到 assume-user 的文档 here。