Ошибка 1030 при попытке изменить Smartsheet

У меня есть страница php, которая перечисляет содержимое таблицы smartsheet для разных пользователей.
Он заполняет таблицу такой информацией, как название работы, дата начала и дата доставки. Но я также хотел бы, чтобы пользователи могли ставить флажки по окончании работы.

Когда флажок установлен, вызывается другая (очень элементарная) страница для сохранения нового значения в таблице smartsheet.

Эта страница запускается основной командой get, например так:

HTTP: //myurl/index.php colId = XXX&RowId = YYY&статус = проверено

Где используются переменные:

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 (украден из эта почта):

$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);

«Входной токен» генерируется тем же электронным письмом, которое используется в качестве электронного письма «Assume-User».
И я могу изменить значения в обычной таблице при входе в систему.
Но все равно я получаю эту ошибку при запуске веб-страницы:

{"errorCode":1030,"message":"You are unable to assume the user specified."}

Кто-нибудь знает, что я сделал не так?

Любая помощь будет очень ценится!

2

Решение

Есть два способа войти в систему как пользователь. Сначала вы можете войти напрямую, используя токен для этой учетной записи пользователя. Заголовки будут выглядеть так:

$header = array('Authorization: Bearer '.$userToken,
"Content-Type: application/json");

Второй вариант — использовать учетную запись администратора для входа в систему как другой пользователь. Для этого вы можете использовать заголовок accept-user вместе с токеном администратора. Заголовки будут выглядеть так:

$header = array('Authorization: Bearer '.$adminToken,
'Content-Type: application/json',
'Assume-User: someUser%40someDomain.com');

Документацию для предполагаемого пользователя можно найти Вот.

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]