erreur de mise à jour des lignes de l'API smartsheet 1004. vous n'êtes pas autorisé

Josh

J'essaie d'utiliser PowerShell et l'API pour mettre à jour une cellule, mais j'obtiens une erreur: 1004 Vous n'êtes pas autorisé à effectuer cette action. J'ai élidé les identifiants. . .

J'ai un essai de 30 jours. Dois-je souscrire à un certain niveau de support avant de pouvoir utiliser l'API pour effectuer des mises à jour ou quoi? La feuille est sur mon compte et je suis le propriétaire. Le rôle Write Sheets n'est-il pas inclus dans Owner?

J'utilise PowerShell 5.1 pour faire la requête http - voici mon script. Il obtient d'abord l'ID de feuille correct, puis met les lignes et les colonnes qui m'intéressent dans des hachages, puis essaie de mettre à jour la feuille, mais bien que je sois le propriétaire, je ne suis pas autorisé.

# access account of [email protected]
$apiKey = "3ccfgk..."
$url = "https://api.smartsheet.com/2.0/sheets/"
$get_headers = @{"Authorization" = "Bearer " + $apiKey}
$put_headers = @{"Authorization" = "Bearer " + $apiKey, "Content-Type: application/json"  }

# get all the sheets
$response = Invoke-RestMethod -Uri $url -Headers $get_headers
$rd = $response.data
$json = ConvertTo-Json $rd

# find the Forecast sheet
$sheet_id = $rd | Where {$_.name -eq "Forecast Intermediary Sheet"} | Select -ExpandProperty id
"Sheet ID: $sheet_id"

#get the Forecast sheet
$surl = "$url$sheet_id"
$surl
$response = Invoke-RestMethod -Uri $surl -Headers $get_headers
$response | Format-List

# iterate over the rows and get the active ones
$active_rows = @{}
foreach ($row in $response.rows) {
    if ($row.rowNumber -ge 14) {
        if ($row.cells[2].value -Match "Active") {
            $active_rows.Add($row.cells[2].value, $row.id)
        }
    }
}

# get the col_ids by date
$date_cols = @{}
foreach ($c in $response.columns) {
    if ($c.title -as [datetime]) {
        $d = $c.title -replace "/20", "/"
        $ds = [datetime]::parseexact($d, 'mm/dd/yy', $null)
        $date_cols.Add($ds.Tostring("yyyy-mm-dd"), $c.id)
    }

}


"UPDATE:"
$rowid = $active_rows["SSL PS Active"]
$colid = $date_cols["2017-11-01"]
"row: $rowid, col: $colid"

$json = '[{ "id": "'+$rowid+'", "cells": [{"columnId": "'+$colid+'","value": "23"} }]'
"JSON: $json"
$purl = "$surl/rows"
"PUT URL: $purl"
$r = Invoke-RestMethod -Method "PUT" -uri $purl -Headers $put_headers -Body $json
$r

Vous trouverez ci-dessous la sortie du script. L'erreur semble indiquer que la syntaxe est correcte, mais que OWNER dispose d'autorisations insuffisantes.

Sheet ID: 5724...
https://api.smartsheet.com/2.0/sheets/5724....
UPDATE:
row: 5668..., col: 5118...
JSON: [{ "id": "5668...", "cells": [{"columnId": "5118...","value": "23"} }]
PUT URL: https://api.smartsheet.com/2.0/sheets/5724.../rows


Invoke-RestMethod : {
  "errorCode" : 1004,
  "message" : "You are not authorized to perform this action.",
  "refId" : "14a7o8lu9sfyj"
}
At \\winfiles\jmoore\powershell\ss_api.ps1:58 char:6
+ $r = Invoke-RestMethod -Method "PUT" -uri $purl -Headers $put_headers ...
+      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod], 
    WebException
    + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodComand

Voici les méta données de ma fiche

Sheet ID: 5724...
https://api.smartsheet.com/2.0/sheets/5724....


id                         : 5724...
name                       : Forecast Intermediary Sheet
version                    : 2
totalRowCount              : 37
accessLevel                : OWNER
effectiveAttachmentOptions : {GOOGLE_DRIVE, DROPBOX, ONEDRIVE, EGNYTE...}
ganttEnabled               : False
dependenciesEnabled        : False
resourceManagementEnabled  : False
cellImageUploadEnabled     : True
userSettings               : @{criticalPathEnabled=False; displaySummaryTasks=True}
permalink                  : https://app.smartsheet.com/b/home?lx=LCTEj6F0xWNKWWxFUuLH0w
createdAt                  : 2017-11-22T22:34:51Z
modifiedAt                 : 2017-11-22T22:34:51Z
columns                    : {@{id=6985...; index=0; title=Column1; type=TEXT_NUMBER; primary=True; 
                             validation=False; width=64}, @{id=1356...; index=1; title=Column2; 
                             type=PICKLIST; options=System.Object[]; validation=False; width=64}, 
                             @{id=5859...; index=2; title=Column3; type=TEXT_NUMBER; validation=False; 



....
Kim Brandl

Vous devriez pouvoir passer des appels API à l'aide d'un jeton d'accès API appartenant à un compte Smartsheet d'essai, et vous pouvez très certainement mettre à jour une feuille que vous possédez à l'aide d'un jeton d'accès API que vous possédez.

Je soupçonne que la 1004réponse d'erreur est causée par le fait que le contenu de $put_headersn'est pas formaté correctement. c'est-à-dire que Smartsheet n'est pas capable d'analyser avec précision les en-têtes que vous essayez de spécifier $put_headersafin d'identifier l'en- tête d' autorisation et de lire sa valeur. Lorsque Smartsheet ne voit pas l'en- tête d' autorisation dans une requête API entrante, il répondra avec la 1004 You are not authorized to perform this action.réponse d'erreur.

Pour résoudre ce problème, je vous suggère d'utiliser un outil comme Fiddler pour examiner la demande sortante «Mettre à jour les lignes», en accordant une attention particulière aux en-têtes présents dans la demande. Ensuite, si vous découvrez que l'en- tête Authorization est absent de la demande, vous devrez déterminer comment spécifier plusieurs en-têtes de demande dans PowerShell et mettre à jour votre code en conséquence sur la façon dont vous définissez la valeur de $put_headers.

Mise à jour (ajout du code PowerShell):

Je ne suis pas un expert PowerShell, mais vous pouvez essayer de remplacer cette ligne:

$put_headers = @{"Authorization" = "Bearer " + $apiKey, "Content-Type: application/json"}

Avec ces lignes à la place:

$put_headers = @{}
$put_headers.Add("Authorization", "Bearer " + $apiKey)
$put_headers.Add("Content-Type", "application/json")

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

Erreur de l'API REST Azure DevOps: vous n'êtes pas autorisé à créer un abonnement

Vous n'êtes pas autorisé à utiliser l'erreur de l'instruction de chargement en bloc

Erreur: vous n'êtes pas autorisé à supprimer l'écran de démarrage Unity de votre jeu

Vous n'êtes pas autorisé à utiliser ce service Erreur de téléchargement de l'application iTunes

Erreur interdite de l'application Symfony 403: vous n'êtes pas autorisé à accéder / sur ce serveur

Déclencheur de mise à jour provoquant l'erreur SQL "Impossible de trouver l'objet" XXX "car il n'existe pas ou vous ne disposez pas des autorisations."

erreur de script google "Vous n'êtes pas autorisé à appeler create (ligne 38, fichier" macros ")"

Test 403 de l'API Django-rest-framework {'detail': 'Vous n'êtes pas autorisé à effectuer cette action.'}

Erreur d'exécution de l'extension FinderSync: le fichier n'a pas pu être ouvert car vous n'êtes pas autorisé à l'afficher

Vous n'êtes pas autorisé à effectuer des achats de cette InApp dans Sandbox pour le moment

Une erreur s'est produite (UnauthorizedOperation) lors de l'appel de l'opération DescribeVpcEndpoints : vous n'êtes pas autorisé à effectuer cette opération

Kubernetes / kops: erreur lors de la connexion du volume EBS à l'instance. Vous n'êtes pas autorisé à effectuer cette opération. Erreur 403

Xcode 8: Unity 4.6.9 - Vous n'êtes pas autorisé à supprimer l'écran de démarrage Unity

Le fichier n'a pas pu être ouvert car vous n'êtes pas autorisé à l'afficher erreur

Comment configurer la stratégie IAM pour AWS Lambda dans VPC afin de résoudre l'erreur "Vous n'êtes pas autorisé à effectuer: CreateNetworkInterface."

Vous n'êtes pas autorisé à afficher cette erreur de répertoire ou de page sur Azure avec php + mySql

Le nom de schéma spécifié n'existe pas ou vous n'êtes pas autorisé à l'utiliser

Django reste: vous n'êtes pas autorisé à effectuer cette action lors de la création du schéma de l'API

Utiliser la fonction de script Google comme formule - Exception d'erreur : vous n'êtes pas autorisé à appeler setActiveSheet

Erreur Xero PHP API: "Vous n'êtes pas autorisé à accéder à cette ressource"

VssUnauthorizedException VS30063 Vous n'êtes pas autorisé à accéder à l'erreur soudainement levée

Erreur Quickblox: vous n'êtes pas connecté et non autorisé

Xcode 7.1 "L'opération de l'iTunes Store a échoué, vous n'êtes pas autorisé à utiliser ce service"

Mise à jour du format de cellule à l'aide de l'API Smartsheet (SDK Python)

API JIRA REST pour obtenir le journal de travail - "Vous n'êtes pas autorisé à voir le problème spécifié"

L'objet 'tuple' n'a pas d'attribut Erreur '_committed' lors de la mise à jour des objets image?

Erreur lors de la mise à jour des détails à l'aide de l'API Rest

Vous n'êtes pas un utilisateur sandbox de ce client. Erreur Codeigniter-Instagram api

Le package principal SSIS donne Le nom de schéma spécifié n'existe pas ou vous n'êtes pas autorisé à l'utiliser erreur mais le package enfant s'exécute

TOP liste

  1. 1

    Comment afficher du texte au milieu de div avec une couleur d'arrière-plan différente?

  2. 2

    Modbus Python Schneider PM5300

  3. 3

    Comment faire une recherche partielle et obtenir un score pertinent dans Elasticsearch

  4. 4

    Autocomplete avec java, Redis, Recherche élastique, Mongo

  5. 5

    Comment choisir le nombre de fragments et de répliques Elasticsearch

  6. 6

    Comment utiliser HttpClient avec TOUT cert ssl, quelle que soit la « mauvaise » est

  7. 7

    Existe-t-il un moyen de voir si mon bot est hors ligne ?

  8. 8

    optimiser les opérations du serveur avec elasticsearch: traitement des filigranes de disque bas

  9. 9

    MasterService d'ElasticSearch prend trop de temps pour calculer l'état du cluster et lancer ProcessClusterEventTimeoutException

  10. 10

    Spring @RequestParam DateTime format comme ISO 8601 Date Heure facultative

  11. 11

    Quelque chose dans le cluster Elasticsearch 7.4 devient de plus en plus lent avec les délais de lecture de temps en temps

  12. 12

    Microsoft.WebApplication.targets

  13. 13

    Comment analyser un hachage Ruby plat en un hachage imbriqué?

  14. 14

    Comment changer la couleur de la police dans R?

  15. 15

    Comment créer une nouvelle application dans Dropbox avec des autorisations complètes

  16. 16

    Comment vérifier si un utilisateur spécifique a un rôle? Discord js

  17. 17

    Exporter la table de l'arborescence vers CSV avec mise en forme

  18. 18

    Résultat de l'échantillonneur JMeter : comprendre le temps de chargement, le temps de connexion et la latence

  19. 19

    Ajustement non linéaire avec R

  20. 20

    comment copier du contenu et le mettre dans un pdf nouvellement créé en utilisant iText

  21. 21

    php ajouter et fusionner des données de deux tables

chaudétiquette

Archive