Ошибка Smartsheet Webhook

Я пытаюсь создать webhook из одного из моих приложений в php, используя curl

вот фрагмент кода, который я использую (мой токен правильный, и мне принадлежит лист 6642490389358468)

function setWebHook($token){
            // API Url
            // BASE_API_URL = "https://api.smartsheet.com/2.0/";
            $url = self::BASE_API_URL. "webhooks";
            $headers = array(
              "Authorization: Bearer ". $token,
              "Content-Type: application/json"
             );
            //The JSON data.
            $jsonData = array(
                "callbackUrl"=>"https://www.example.com/myapp/test",
                "scope"=>"sheet",
                "scopeObjectId"=>6642490389358468,
                "version"=>1,
                "events"=>[ "*.*" ]
            );
            //Initiate cURL.
            $ch = curl_init($url);
            //Encode the array into JSON.
            $jsonDataEncoded = json_encode($jsonData);
            //Tell cURL that we want to send a POST request.
            curl_setopt($ch, CURLOPT_POST, 1);
            //Attach our encoded JSON string to the POST fields.
            curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonDataEncoded);
            //Set the content type to application/json
            curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
            //Execute the request
            $result = curl_exec($ch);
            if (curl_errno($ch)) {
                $apiResponse = "Oh No! Error: " . curl_error($ch);
            } else {
                // Assign response to variable
                $apiResponse = json_decode($result);
                curl_close($ch);
            }
            return $apiResponse;
        }

но я получаю следующий ответ

{
    "errorCode": 1004,
    "message": "You are not authorized to perform this action.",
    "refId": "x2kcvthuyfs8"
}

Вы можете помочь мне решить эту проблему? я что-то пропустил?

2 ответа

В коде есть одна небольшая ошибка - вам необходимо передать свойство "name" обратно в ваш массив jsonData.

Что касается проблемы с авторизацией, я смог использовать ваш точный код с моими учетными данными Smartsheet, чтобы успешно создать веб-крючок на листе, который я создал. Дважды проверьте, что ваш токен доступа работает должным образом (или вы можете выпустить новый), используя его для выполнения другого вызова API, такого как getSheet. Если маркер доступа работает, проблема заключается в разрешениях на листе, к которому вы пытаетесь добавить веб-крючок. Убедитесь, что у вас есть статус "Владелец" или "Администратор" на листе, и снова скопируйте идентификатор листа.

Я могу подтвердить, что код работает с добавлением свойства name.

Спасибо вам всем,

теперь это работает, я не включил область доступа ADMIN_WEBHOOKS при запросе моего токена $, и, конечно, я забыл свойство name!

Другие вопросы по тегам