código de erro API mailerlite 422 para endpoint de subscritores

Hoje, eu estava a implementar a interface entre PiCockpit.com e o Mailerlite API (que utilizamos no nosso software de boletim informativo).

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

Recebi a seguinte mensagem de erro:

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

O pedido POST devolvia 422 como código de estado.

Infelizmente, há pouca documentação sobre isso no Mailerlite. A minha implementação estava correcta (a propósito, esta é a Crystal Lang):

	obter "/test" do |env|
	  corpo = "e-mail": \"support@example.com""}
	  coloca corpo
      resposta = HTTP::Client.post("https://api.mailerlite.com/api/v2/subscribers",
      		cabeçalhos: HTTP::Cabeçalhos{
      			"X-MailerLite-ApiKey" => "MAILERLITE_APIKEY",
      			"Content-Type": "aplicação/json": "aplicação/json".
      			},
      		corpo: corpo)
  	  se resposta.status_code != 201
  	  	coloca "newsletter_subscrição :: código de erro #{response.status_code}".
  	  	coloca o response.body
  	  senão
  	  	coloca "newsletter_subscrição :: OK".
  	  	coloca o response.body
  	  fim
	fim

onde MAILERLITE_APIKEY é a chave API que se cria no backend:

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

(Clique em "Gerar novo símbolo", é-lhe apresentado apenas uma vez).

Como corrigir 422 ao chamar o ponto final dos subscritores do Mailerlite API

O apoio de mailerlite deu-me a solução:

certos endereços de correio electrónico são rejeitados - por exemplo, endereços de correio electrónico que são suporte@. Isto deve-se ao facto de a taxa de rejeição ser mais elevada neles.

Como se parece uma resposta bem sucedida?

Com um endereço de correio electrónico diferente, a resposta tem este aspecto:

{"id":2348923942342834, "name":"", "email": "differentuser@example.com", "sent":0, "open":0, "open_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":"país", "valor":"", "tipo": "TEXT"},{"chave": "cidade", "valor":"", "tipo": "TEXT"},{"chave": "telefone", "valor":"", "tipo": "TEXT"},{"chave": "estado", "valor":"", "tipo":”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″}

O código de resposta é 201"criado".

Contrate-nos

Se precisar de apoio para o seu desenvolvimento backend ou frontend, pode contratar-nos. Entre em contacto para mais informações.