technique:python:api_python

Ceci est une ancienne révision du document !


API en Python

https://documentation.mailgun.com/en/latest/api-events.html#events

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,api,key)

Clef de Session

request.post : pour lancer la requete

request.get(url/endpoint)

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 python fourni par mailGun :

"""View a message using its Mailgun storage key."""
import os
import sys
import requests
if len(sys.argv) != 2:
  print "Usage: retrieve.py message_key"
  sys.exit(1)
api_key = YOUR_API_KEY
# output filename
filename = "message.eml"
# url for retrieval
domain = "mailgun.com"
key = sys.argv[1]
url = "https://api.mailgun.net/v3/domains/%s/messages/%s"
url = url % (domain, key)
headers = {"Accept": "message/rfc2822"}
# request to API
r = requests.get(url, auth=("api", api_key), headers=headers)
if r.status_code == 200:
  with open(filename, "w") as message:
    message.write(r.json()["body-mime"])
  os.system("thunderbird -file %s" % filename)
else:
  print "Oops! Something went wrong: %s" % r.content

Pour les bounces

def get_bounces ():
     return requests.get("https://api.mailgun.net/v3/YOUR_DOMAIN_NAME/bounces",auth=("api","YOUR_API_KEY"))

On peut varier les endpoints (events…)

Et la réponse reçue :

200
{
  "items":
    [
      {
        "address": "alice@example.com",
        "code": "550",
        "error": "No such mailbox",
        "created_at": "Fri, 21 Oct 2011 11:02:55 GMT"
      },
      ...
    ],
  "paging":
    {
      "first": <first page URL>,
      "next": <next page URL>,
      "previous": <previous page URL>,
      "last": <last page URL>
    }
}

A détailler…

  • technique/python/api_python.1586564788.txt.gz
  • Dernière modification : 2020/04/11 02:26
  • de 127.0.0.1