Código de error 422 de la API de mailerlite para el punto final de los suscriptores

Hoy, estaba implementando la interconexión entre PiCockpit.com y la API de Mailerlite (que utilizamos en nuestro software de boletines).

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

Recibí el siguiente mensaje de error:

{"error":{"código":422, "mensaje": "Entidad no procesable"}}

La solicitud POST devolvía 422 como código de estado.

Desgraciadamente hay poca documentación al respecto en Mailerlite. Mi implementación era correcta (por cierto, esto es Crystal Lang):

	get "/test" do |env|
	  body = "{\"email\": \"[email protected]"}"
	  puts body
      response = HTTP::Client.post("https://api.mailerlite.com/api/v2/subscribers",
      		headers: HTTP::Headers{
      			"X-MailerLite-ApiKey" => "MAILERLITE_APIKEY",
      			"Content-Type": "application/json"
      			},
      		body: body)
  	  si response.status_code != 201
  	  	puts "newsletter_subscription :: código de error #{response.status_code}"
  	  	puts response.body
  	  else
  	  	puts "boletín_suscripción :: OK"
  	  	puts response.body
  	  end
	end

donde MAILERLITE_APIKEY es la clave de la API que se crea en el backend:

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

(Haga clic en "Generar nuevo token", sólo se le mostrará una vez).

Cómo arreglar el 422 al llamar al punto final de suscriptores de la API de Mailerlite

El soporte de mailerlite me dio la solución:

ciertas direcciones de correo electrónico son rechazadas - por ejemplo, las direcciones de correo electrónico que son support@. Esto se debe a que la tasa de rebote es mayor en ellas.

¿Cómo es una respuesta exitosa?

Con una dirección de correo electrónico diferente, la respuesta es así:

{"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″}

El código de respuesta es 201, "creado".

Contrate con nosotros

Si necesita soporte para su desarrollo backend o frontend, puede contratarnos. Póngase en contacto con nosotros para obtener más información.