1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    décembre 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2010
    Messages : 6
    Points : 4
    Points
    4

    Par défaut cURL vers Python 2.7 pour raspberry

    Bonjour,

    J'ai beau essayer de codifier en python, je n'arrice pas à traduire cette demande Token pour l'API Myfox en Python...
    Pouvez vous m'aider ?

    Ligne à traduire en cURL :

    curl https://api.myfox.me/oauth2/token -d 'grant_type=password&client_id=CLIENT_ID&client_secret=CLIENT_SECRET&username=YOUR_USERNAME&password=YOUR_PASSWORD'

    Ci-dessous la codification que j'ai faite en Python. A chaque fois j'ai un retour 400 (Bad request)

    import requests

    url = "https://api.myfox.me/oauth2/token"

    querystring = {"grant_type":"password"}

    payload = "client_id=%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F&client_secret=%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F&username=%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F&password=%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F"
    headers = {
    'content-type': "application/x-www-form-urlencoded",
    'cache-control': "no-cache",
    'postman-token': "98f18521-fdad-eb8e-7e20-83e30c777404"
    }

    response = requests.request("POST", url, data=payload, headers=headers, params=querystring)

    print(response.text)
    PS : Biensur les informations client_id, client_secret,etc.. sont mises normalement,sans ?

  2. #2
    Modérateur

    Homme Profil pro
    Architecte technique
    Inscrit en
    juin 2008
    Messages
    10 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 10 203
    Points : 16 656
    Points
    16 656

    Par défaut

    Salut,
    Quand vous écrivez:
    Citation Envoyé par lamusicadomi Voir le message
    curl https://api.myfox.me/oauth2/token -d 'grant_type=password&client_id=CLIENT_ID&client_secret=CLIENT_SECRET&username=YOUR_USERNAME&password=YOUR_PASSWORD'
    Le "-d" est là pour dire ce qui sera dans les données.
    Pourquoi est-ce que vous en mettez un bout dans les data et l'autre passé en paramètre dans l'URL?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    décembre 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2010
    Messages : 6
    Points : 4
    Points
    4

    Par défaut Votre solution

    Merci pour votre réponse...
    Je ne peux pas dire si j'ai bien fait ou pas.
    C'est pourquoi je soumets mon message.
    Quel est votre idée ?
    A bientôt !

  4. #4
    Modérateur

    Homme Profil pro
    Architecte technique
    Inscrit en
    juin 2008
    Messages
    10 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 10 203
    Points : 16 656
    Points
    16 656

    Par défaut

    Citation Envoyé par lamusicadomi Voir le message
    Je ne peux pas dire si j'ai bien fait ou pas.
    Si çà ne fonctionne pas, c'est que ce n'est pas bon.

    Pour le reste, je vous ai posé une question sur le pourquoi de votre champ "data".
    Il est visiblement différent de celui de la requête curl.
    A vous de voir.

    - W
    PS: comme vous n'êtes pas en train de faire l'exo d'un tuto. vous devez savoir expliquer pourquoi vous avez choisi d'écrire ce code là.
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    décembre 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2010
    Messages : 6
    Points : 4
    Points
    4

    Par défaut Postman

    J'utilise Domoticz et Myfox en domotique pour mon domicile.
    Pour lancer sous Domoticz des ordres à Myfox, je passe soit par Python, soit Lua, soit SH.
    Pour ce qui est de .sh j'ai fait un exécutable qui reprend la syntaxe initiale et qui marche. Cependant je ne sais pas dans ce langage récupérer la clé token en retour...
    J'ai donc utilisé le logiciel Postman qui normalement me codifie les paramètres en code Python.

    Plusieurs questions me viennent à l'esprit en faisant cette réponse, à savoir :

    1) Je ne sais s'il y a de l'importance mais j'ai tout mis en paramètre et la réponse est identique...
    2) Je voulais savoir si quelqu'un pouvait me transcrire la commande. Je sais qu'il faut qu'elle soit en POST et que le grant_type doit être password. Pour ce qui est de la codification, peut-on m'aider à retranscrire cette commande curl en Python ?

    Voilà ! Je pense être clair sur ce sujet.
    A bientôt
    Merci d'avance pour votre aide

Discussions similaires

  1. Réponses: 12
    Dernier message: 24/10/2007, 12h00
  2. Python ou Ruby pour débuter ?
    Par TallyHo dans le forum Débuter
    Réponses: 17
    Dernier message: 02/08/2007, 22h32
  3. Utiliser Python et PostGresql pour créer un site Web
    Par rvweb dans le forum Réseau/Web
    Réponses: 8
    Dernier message: 22/10/2006, 20h03
  4. Réponses: 5
    Dernier message: 20/07/2006, 01h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo