Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
technique:python:api_python [2020/03/07 23:01] – francoisa | technique:python:api_python [2024/04/02 15:08] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== API en Python ====== | + | **Cette page est obsolète. Veuillez accéder au contenu à son nouvel emplacement : |
- | + | ||
- | ===== Cas de Mailgun ===== | + | |
- | + | ||
- | [[https://documentation.mailgun.com/en/latest/api-events.html# | + | |
- | + | ||
- | jsonrpc | + | |
- | + | ||
- | 1 endroit, 1 méthode, des paramètres | + | |
- | < | + | |
- | + | ||
- | import json | + | |
- | + | ||
- | import requests | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | On créer une sesssion (si plusieurs simultannée) | + | |
- | + | ||
- | < | + | |
- | session= LSession(url, | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | Clef de Session | + | |
- | + | ||
- | request.post : pour lancer la requete | + | |
- | + | ||
- | < | + | |
- | request.get(url/ | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | Le endpoint définit ce que l'on veut. | + | |
- | + | ||
- | json(string) → renvoie un dictionnaire | + | |
- | + | ||
- | request.json() → renvoie un dictionnaire | + | |
- | + | ||
- | def get-logs renvoie une reponse de type response | + | |
- | + | ||
- | response.json() : est un dictionnaire. | + | |
- | + | ||
- | Exemple | + | |
- | + | ||
- | <code python> | + | |
- | """ | + | |
- | import os | + | |
- | import sys | + | |
- | import requests | + | |
- | if len(sys.argv) != 2: | + | |
- | print " | + | |
- | sys.exit(1) | + | |
- | api_key = YOUR_API_KEY | + | |
- | # output filename | + | |
- | filename = " | + | |
- | # url for retrieval | + | |
- | domain = " | + | |
- | key = sys.argv[1] | + | |
- | url = " | + | |
- | url = url % (domain, key) | + | |
- | headers = {" | + | |
- | # request to API | + | |
- | r = requests.get(url, | + | |
- | if r.status_code == 200: | + | |
- | with open(filename, | + | |
- | message.write(r.json()[" | + | |
- | os.system(" | + | |
- | else: | + | |
- | print "Oops! Something went wrong: %s" % r.content | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | Pour les bounces | + | |
- | + | ||
- | < | + | |
- | def get_bounces (): | + | |
- | | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | On peut varier les endpoints (events…) | + | |
- | + | ||
- | Et la réponse reçue : | + | |
- | + | ||
- | <code python> | + | |
- | 200 | + | |
- | { | + | |
- | " | + | |
- | [ | + | |
- | { | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | }, | + | |
- | ... | + | |
- | ], | + | |
- | " | + | |
- | { | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | } | + | |
- | } | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | A détailler… | + |