Quel scope est nécessaire pour accéder à {{localhost}}/posts.json ?

Bonjour,

J’ai généré une clé API délivrée par un administrateur avec les étendues write, read et read lists. Cependant, lorsque j’essaie d’utiliser cette clé (en l’ajoutant dans l’en-tête Api-Key) pour accéder au point de terminaison {{localhost}}/posts.json, je reçois l’erreur suivante :

    "errors": [
        "Vous n'êtes pas autorisé à consulter la ressource demandée. Le nom d'utilisateur ou la clé API est invalide."
    ],
    "error_type": "invalid_access"
}

En revanche, la génération d’une clé globale me donne accès au point de terminaison. Quelle est l’étendue correcte (minimale) pour lire {{localhost}}/posts.json ?

Je ne l’ai pas encore testé, mais je pense que ce que vous observez est le comportement attendu. Vous pouvez cliquer sur le bouton d’ancre affiché à côté de chaque portée de clé API pour voir quels chemins la portée vous permet d’accéder. Vous verrez que la portée read ne s’applique qu’aux routes commençant par /t. La portée read lists vous donne accès aux listes de sujets Discourse. Il n’existe pas de portée qui autorise spécifiquement l’accès à /posts.json, il semble donc que vous deviez utiliser une clé globale pour cela.

Je me demande s’il serait logique d’ajouter /posts.json à la portée read.

Bonjour Simon ! Merci pour ta réponse et l’explication. Pour mon cas d’usage, j’aurai besoin de lire les publications depuis /posts.json, mais en même temps, je souhaite être le moins intrusif possible et demander uniquement un accès en lecture seule. Y a-t-il une solution de contournement ?

Si vous interrogez uniquement des publications publiques, vous pourrez peut-être effectuer une requête API non authentifiée vers /posts.json. Si votre site est privé ou si les publications se trouvent dans des catégories protégées, je pense que la seule façon de récupérer actuellement ces publications est d’utiliser une clé API globale.

pr-welcome pour une nouvelle portée ou pour l’ajouter à read, je pense.