Modifications

Sauter à la navigation Sauter à la recherche
4 784 octets ajoutés ,  11 janvier 2015 à 10:37
Ligne 1 : Ligne 1 :  
{{Spark.IO-Could-API-NAV}}
 
{{Spark.IO-Could-API-NAV}}
  −
{{traduction}}
      
== Authentification ==
 
== Authentification ==
{{bloc-etroit|text=Just because you've connected your Spark Core to the internet doesn't mean anyone else should have access to it. Permissions for controlling and communciating with your Spark Core are managed with OAuth2.}}
+
{{bloc-etroit|text=Ce n'est pas parce que vous avez connecté votre Spark Core sur Internet que n'importe qui peut y accéder. Les permissions permettant de contrôler et communiquer avec le Spark Core sont gérés avec [http://fr.wikipedia.org/wiki/OAuth OAuth2] (Wikipedia, Français).}}
   −
  <nowiki># You type in your terminal
+
  <nowiki># Vous tapez ceci dans votre terminal
 
curl https://api.spark.io/v1/devices/0123456789abcdef01234567/brew \
 
curl https://api.spark.io/v1/devices/0123456789abcdef01234567/brew \
 
     -d access_token=9876987698769876987698769876987698769876
 
     -d access_token=9876987698769876987698769876987698769876
# Response status is 200 OK, which means
+
# Réponse: Statut 200 OK, ce qui signifie que votre
# the Core says, "Yes ma'am!"
+
# Core dit "Oui, monsieur!"  
   −
# Sneaky Pete tries the same thing in his terminal
+
# Si Sneaky Pete essaye la même chose dans son terminal
 +
# Notez que Sneaky utilise son propre access_token (celui mentionné
 +
# dans son environnement Spark Build)
 
curl https://api.spark.io/v1/devices/0123456789abcdef01234567/brew \
 
curl https://api.spark.io/v1/devices/0123456789abcdef01234567/brew \
 
     -d access_token=1234123412341234123412341234123412341234
 
     -d access_token=1234123412341234123412341234123412341234
# Response status is 403 Forbidden, which means
+
# Réponse: Statut 403 Forbidden, signifiant que votre
# the Core says, "You ain't the boss of me."
+
# Core répond "Tu n'est pas mon maître."
   −
# LESSON: Protect your access token.</nowiki>
+
# Morale de cet exemple: *** protégez votre access_token ***</nowiki>
    
* [https://www.spark.io/build Cliquez ici pour vous brancher sur '''SPARK BUILD''']
 
* [https://www.spark.io/build Cliquez ici pour vous brancher sur '''SPARK BUILD''']
Ligne 24 : Ligne 24 :  
[[Fichier:Spark-Build-Icon.jpg|link=http://www.spark.io/build]]
 
[[Fichier:Spark-Build-Icon.jpg|link=http://www.spark.io/build]]
   −
When you connect your Spark Core to the Cloud for the first time, it will be associated with your account, and only you will have permission to control your Spark Core—using your access token.
+
Lorsque vous connectez votre Spark Core sur le Cloud pour la première fois, is sera associé à votre compte Spark. Seulement après cette opération vous aurez la permission de contrôler Spark Core en utilisant votre ''access token''.
 +
 
 +
 
 +
Si vous voulez transférer la propriété de votre Core à un autre utilisateur, la façon la plus simple est encore de vous connecter sur le [http://www.spark.io/build site de Spark build], de cliquer sur l'icon 'Cores' en bas à gauche puis de cliquer sur la petite flèche à côté du Core à transférer.  
    +
Vous pourrez ainsi cliquer sur le bouton "Remove Core" (''retirer le Core'') afin qu'il ne soit plus associé à votre compte Spark.
   −
If you need to transfer ownership of the core to another user, the easiest way is to simply log into the [http://www.spark.io/build Spark build site], click on the 'cores' drawer on the bottom left, and then click the small 'right arrow' by the core you want to release, then click "Remove Core". This will make it possible for the other person you are transfering the core to, to go through the normal [[Spark.IO-Connect#D.C3.A9clarer_votre_core|processus de déclaration]].
+
Cette opération réalisée, vous pouvez alors donner votre Core et la personne qui le recevra pourra utiliser le [[Spark.IO-Connect#D.C3.A9clarer_votre_core|processus de déclaration]] (''claiming'') normalement, comme s'il s'agissait d'un Core tout neuf.
      −
In the future, you will be able to provision access to your Spark Core to other accounts and to third-party app developers; however, these features are not yet available.
+
Dans le futur, vous serez capable d'offrir un accès à votre Core à d'autre comptes et à des développeurs d'application; Cependant, cette fonctionnalité n'est pas encore disponible.
    
=== Comment envoyer votre access_token ===
 
=== Comment envoyer votre access_token ===
There are three ways to send your access token in a request.
+
Il y a trois façons différentes d'envoyer un ''access token'' (jeton d'accès) dans une requête.
   −
* In an HTTP Authorization header (always works)
+
* Dans l'entête d'autorisation HTTP (''HTTP Authorization header''). Fonctionne toujours.
* In the URL query string (only works with GET requests)
+
* Inlus dans l'URL de la requête (dans la ''query string''). Fonctionne uniquement avec les requêtes GET.
* In the request body (only works for POST & PUT when body is URL-encoded)
+
* Dans le corps de la requête. Fonctionne uniquement avec POST et PUT lorsque l'URL est encodée dans le corps (''content request'').
   −
In these docs, you'll see example calls written using a terminal program called curl which may already be available on your machine.
+
Dans ces documents, vous allez voir des exemples d'appel utilisant le programme CURL en ligne de commande. CURL est disponible sur toutes les plateformes.
   −
Example commands will always start with '''curl'''.
+
Les commandes d'exemples vont toujours commencer avec '''curl'''.
    +
==== Dans l'entête HTTP ====
 
  <nowiki>curl -H "Authorization: Bearer 38bb7b318cc6898c80317decb34525844bc9db55"
 
  <nowiki>curl -H "Authorization: Bearer 38bb7b318cc6898c80317decb34525844bc9db55"
 
   https://...</nowiki>
 
   https://...</nowiki>
   −
To send a custom header using curl, use you the -H flag. The access token is called a "Bearer" token and goes in the standard HTTP Authorization header.
+
Utiliser le flag/drapeau pour envoyer une entête personnalisée en utilisant CURL. Le token d'accès est appelé un jeton "Bearer" et prends place dans l'entête d'autorisation HTTP standard (''standard HTTP Authorization header'').
    +
==== Dans la Query String ====
 
  <nowiki>curl https://api.spark.io/v1/devices\?access_token=38bb7b318cc6898c80317decb34525844bc9db55</nowiki>
 
  <nowiki>curl https://api.spark.io/v1/devices\?access_token=38bb7b318cc6898c80317decb34525844bc9db55</nowiki>
   −
The query string is the part of the URL after a ? question mark. To send the access token in the query string just add access_token=38bb.... Because your terminal thinks the question mark is special, we escape it with a backslash.
+
La ''query string'' est la partie de l'URL après le point d'interrogation (?). Pour envoyer un access token dans la "query string" ajoutez simplement access_token=38bb....  
    +
Note: étant donné que le terminal va interpréter le ? comme un caractère spécial de remplacement, nous devons utiliser la séquence d'échappement (\?).
 +
 +
==== Dans le corps de requête ====
 
  <nowiki>curl -d access_token=38bb7b318cc6898c80317decb34525844bc9db55
 
  <nowiki>curl -d access_token=38bb7b318cc6898c80317decb34525844bc9db55
 
   https://...</nowiki>
 
   https://...</nowiki>
   −
The request body is how form contents are submitted on the web. Using curl, each parameter you send, including the access token is preceded by a -d flag. By default, if you add a -d flag, curl assumes that the request is a POST. If you need a different request type, you have to specifically say so with the -X flag, for example -X PUT.
+
Le corps de requête (''content request'') est la façon dont un formulaire est soumis sur le Web (élément html '''FORM'''). En utilisant curl, chaque paramètre que vous voulez envoyer (incluant l'access token) doit être précédé du flag/drapeau -d.  
 +
 
 +
Par défaut, si vous ajoutez un flag/drapeau -d alors CURL considère que vous voulez faire une requête de type POST. Si vous avez besoin d'indiquer un type de requête différent alors vous pouvez utiliser le flag/drapeau -X (ex: -X PUT).
    
=== Générer un nouvel access_token ===
 
=== Générer un nouvel access_token ===
   −
{{traduction}}
+
Lorsque vous créez un nouvel access token, vous devez spécifier plusieurs informations complémentaires.
 +
 
 +
POST /oauth/token
 +
 
 +
Vous devez fournir un ''client ID'' et un mot de passe valide dans l'entête d’authentification HTTP (HTTP Basic Auth). N'importe quel ''Client ID'' fonctionnera pour le moment, Spark suggère d'utiliser '''spark:spark''' (''utilisateur:mot_de_passe''). Dans le corps de la requête, vous aurez besoin de trois paramètres:
 +
* grant_type=password
 +
* username=VOTRE_EMAIL@ADRES.SE
 +
* password=VOTRE_MOT_DE_PASSE
 +
 
 +
<nowiki># En utilisant Curl en ligne de commande
 +
curl https://api.spark.io/oauth/token -u spark:spark \
 +
    -d grant_type=password -d username=joe@example.com -d password=SuperSecret
 +
 
 +
# Exemple typique de réponse JSON:
 +
{
 +
    "access_token": "254406f79c1999af65a7df4388971354f85cfee9",
 +
    "token_type": "bearer",
 +
    "expires_in": 7776000
 +
}</nowiki>
 +
 
 +
A partir de maintenant, Spark Build affichera le dernier token créé (le plus récent).
 +
 
 +
{{underline|'''Note #1 de MCHobby:'''}}
 +
Le mot "Bearer" signifie ''titulaire''. L'access_token généré permet d'accéder en tant que titulaire.
 +
 
 +
{{underline|'''Note #2 de MCHobby:'''}}
 +
Admettons que nous utilisons l'appel suivant:
 +
 
 +
<nowiki>curl https://api.spark.io/oauth/token -u xyz:xyz \
 +
    -d grant_type=password -d username=votre_adresse@email.com -d password=votre_mot_de_passe_Spark</nowiki>
 +
 
 +
Lorsque vous listerez vos cores (voir ci-dessous), vous verrez apparaitre "client: xyz" comme identification du client!
 +
 
 +
Si vous exécutez plusieurs fois la commande curl, vous obtiendrez plusieurs access_token différent MAIS TOUS VALIDES. Ils apparaitrons tous dans la liste des access_token.
 +
 
 +
=== Lister tous vos tokens ===
 +
Vous pouvez lister tous vos ''access token'' en passant votre adresse e-mail et mot de passe dans l'entête Auth de la requête. Requête adressée à '''/v1/access_tokens'''.
 +
 
 +
  GET /v1/access_tokens
 +
 
 +
<nowiki># En utilisant curl en ligne de commande
 +
curl https://api.spark.io/v1/access_tokens -u joe@example.com:SuperSecret
 +
 
 +
# Exemple de réponse JSON
 +
[
 +
    {
 +
        "token": "b5b901e8760164e134199bc2c3dd1d228acf2d98",
 +
        "expires_at": "2014-04-27T02:20:36.177Z",
 +
        "client": "spark"
 +
    },
 +
    {
 +
        "token": "ba54b6bb71a43b7612bdc7c972914604a078892b",
 +
        "expires_at": "2014-04-27T06:31:08.991Z",
 +
        "client": "spark"
 +
    }
 +
]</nowiki>
 +
 
 +
{{underline|'''Note de MCHobby:'''}}
 +
 
 +
* Lorsque nous avons cherché l'access_token visible dans Spark Build, nous avons noté que celui-ci correspondait au token "client: user".
 +
* Si vous utilisez Spark-CLI, ce dernier obtiendra également son propre access_token correspondant à "client: spark-cli"
 +
* Spark IDE semble également avoir son propre access_token correspondant à "client: spark-ide"
 +
 
 +
=== Effacer un access_token ===
 +
Si vous avez des access token inutilisé et que vous voulez les nettoyer, vous pouvez effacer ces tokens.
 +
 
 +
DELETE /v1/access_tokens/:token
 +
 
 +
Comme pour lister les access_tokens, vous devez envoyer votre nom d'utilisateur et mot de passe dans l'entête d'authentification de la requête.
 +
 
 +
<nowiki># En utilisant curl en ligne de commande
 +
curl https://api.spark.io/v1/access_tokens/b5b901e8760164e134199bc2c3dd1d228acf2d98 \
 +
    -u joe@example.com:SuperSecret -X DELETE
 +
 
 +
# Exemple de réponse JSON
 +
{
 +
    "ok": true
 +
}</nowiki>
 +
 
 +
{{underline|'''Note de MCHobby:'''}}
 +
Durant l'écriture de [https://github.com/mchobby/SparkCoreTuto/tree/master/PyCall nos exemples] PyCall (Python Call pour Spark Core), nous avons noté qu'il était impossible d'effacer le dernier access_token crée (du moins via Python et urllib2).
    
{{Spark.IO-Could-API-TRAILER}}
 
{{Spark.IO-Could-API-TRAILER}}
29 917

modifications

Menu de navigation