Wikidata:REST API/Authentification

From Wikidata
Jump to navigation Jump to search
This page is a translated version of the page Wikidata:REST API/Authentication and the translation is 100% complete.

Aperçu

Voici un rapide aperçu de ce que vous devez savoir pour être authentifié et autorisé en utilisant l'API REST Wikibase sur Wikidata :

  • Définir un OAuth 2.0 pour votre accès API sur meta.wikimedia.org, le service OAuth central de Wikimedia ;
  • Utiliser vos nouvelles identités pour commencer à utiliser l'API ;
  • Apprendre comment interagir correctement avec l'API REST Wikibase une fois authentifié.

Avant de commencer

Ce document a été écrit avec Wikidata à l'esprit. L'URL de base dans tous les exemples est https://www.wikidata.org/w/rest.php/wikibase/v0. Si vous utilisez votre propre Wikibase, vous devez seulement remplacer https://wikidata.org avec l'URL de votre propre site.

Voir le document principal sur l'API REST pour plus d'informations sur les états d'erreur et la limitation de débits.

Agent utilisateur

Les requêtes faites sur l'API REST Wikibase doivent contenir un agent utilisateur conformément à la politique relative à l'agent utilisateur applicable aux site Wikimedia. Si votre requête ne comprend pas cette information, vous verrez l'erreur suivante :

{"code":"missing-user-agent","message":"Request must include User-Agent header","httpCode":400,"httpReason":"Bad Request"}

Configurer OAuth 2.0

Pour faire des requêtes autorisées sur l'API REST Wikibase pour Wikidata, vous devez d'abord configurer un client OAuth 2.0 (anciennement connu comme « consommateur »).

  1. Connectez-vous sur meta.wikimedia.org en utilisant la connexion unifiée.
  2. Créez un client OAuth 2.0.
    (rendez-vous y en cliquant sur pages spéciales, puis inscription de consommateur OAuth puis enfin demandez un jeton pour un nouveau consommateur.)
  3. Fournissez les informations suivantes dans le formulaire :
    Nom de l'application : donnez un nom informatif. Exemple : « API REST Wikibase pour Wikidata »
    Description de l'application : encore une fois, donnez un texte qui explique comment vous comptez utiliser l'API. Exemple : « Accès API REST Wikibase pour maintenir mon jeu de données sur les biscuits en forme d'animaux »
    Ce consommateur est uniquement utilisé par (votre nom) (case à cocher) : cocher cette case sous des circonstances normales. Voir ci-dessous pour des situations quand vous laissez cette case décochée.
    Droits applicables (cases à cocher) : cochez chaque boîte qui décrit un type d'accès dont vous aurez besoin pour votre tâche.
    En soumettant cette application... (case à cocher) : lisez le contrat d'utilisation et, si vous en acceptez les termes, cocher cette case.
  4. Soumettez le formulaire en cliquant sur le bouton « Proposer le consommateur ».
  5. Sauvegardez les trois jetons fournis sur l'écran suivant :
    Clé de l'application client : utilisé pour obtenir des jetons du détenteur
    Secret de l'application client : utilisé pour obtenir des jetons du détenteur
    Jeton d'accès : fournit un accès à l'API quand inclut dans le requête API (longueur : ~1 800 caractères).


Utiliser vos identifiants

Une fois que vous avez un accès au jeton, vous pouvez immédiatement commencer à faire des requêtes authentifiées sur l'API REST Wikibase.

curl --request GET \
  --url https://www.wikidata.org/w/rest.php/wikibase/v0/entities/items/Q42/statements \
  --header 'Content-Type: application/json' \ 
  --header 'Authorization: Bearer (your access token)'

Clients non propriétaires uniquement

Si vous choisissez de créer un client (consommateur) OAuth 2.0 qui n'est pas limité à votre propre usage, vous devrez rafraichir votre jeton du détenteur toutes les quatre heures en utilisant l'identifiant de votre application client et le secret de l'application :

curl --request POST \
  --url https://www.wikidata.org/w/rest.php/oauth2/access_token \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data grant_type=client_credentials \
  --data client_id=(your client id) \
  --data client_secret=(your client secret)

Voir aussi