code d'erreur 422 de l'API de mailerlite pour le point de terminaison des abonnés

Aujourd'hui, je mettais en œuvre l'interfaçage entre PiCockpit.com et l'API Mailerlite (que nous utilisons pour notre logiciel de newsletter).

https://api.mailerlite.com/api/v2/subscribers

J'ai reçu le message d'erreur suivant :

{"error":{"code":422, "message" : "Unprocessable entity"}}

La requête POST retournait 422 comme code d'état.

Malheureusement, il existe peu de documentation à ce sujet sur Mailerlite. Mon implémentation était correcte (c'est Crystal Lang d'ailleurs) :

	get "/test" do |env|
	  body = "{\"email\" : \"[email protected]\"}"
	  met body
      response = HTTP::Client.post("https://api.mailerlite.com/api/v2/subscribers",
      		en-têtes : HTTP::Headers{
      			"X-MailerLite-ApiKey" => "MAILERLITE_APIKEY",
      			"Content-Type" : "application/json"
      			},
      		body : corps)
  	  si response.status_code != 201
  	  	puts "newsletter_subscription : : error code #{response.status_code}"
  	  	puts response.body
  	  sinon
  	  	puts "newsletter_subscription : : OK "
  	  	met response.body
  	  fin
	fin

où MAILERLITE_APIKEY est la clé API que vous avez créée dans le backend :

https://dashboard.mailerlite.com/integrations/api

(Cliquez sur "Générer un nouveau jeton", il ne s'affiche qu'une fois pour vous).

Comment corriger le message 422 lors de l'appel du point d'accès aux abonnés de l'API Mailerlite ?

Le support mailerlite m'a donné la solution :

certaines adresses électroniques sont rejetées - par exemple, les adresses électroniques qui sont support@. Cela est dû au fait que le taux de rebond est plus élevé pour ces adresses.

À quoi ressemble une réponse réussie ?

Avec une adresse électronique différente, la réponse ressemble à ceci :

{"id":2348923942342834, "name" :", "email" : "[email protected]", "sent":0, "opened":0, "opened_rate":0, "clicked":0, "clicked_rate":0, "type" : "unconfirmed", "country_id" :"", "signup_ip" :null, "signup_timestamp":null, "confirmation_ip":null, "confirmation_timestamp":null, "fields" :[{"key" : "last_name", "value" :"", "type" : "TEXT"},{"key" : "company", "value" :"", "type" : "TEXT"},{"key" :"country", "value" :"", "type" : "TEXT"},{"key" : "city", "value" :"", "type" : "TEXT"},{"key" : "phone", "value" :"", "type" : "TEXT"},{"key" : "state", "value" :"", "type" :”TEXT”},{“key”:”z_i_p”,”value”:””,”type”:”TEXT”}],”date_subscribe”:”2022-05-19 12:09:24″,”date_unsubscribe”:null,”date_created”:”2022-05-19 12:09:24″,”date_updated”:”2022-05-19 12:09:24″}

Le code de réponse est 201, "créé".

Engagez-nous

Si vous avez besoin de soutien pour votre développement backend ou frontend, vous pouvez nous engager. Pour plus d'informations, contactez-nous.