La API Create Invite no envía correos electrónicos

Hola,

He estado enviando invitaciones utilizando la API (Discourse API Docs). Cuando lo hago desde Postman, recibo el correo de invitación. Sin embargo, al implementarlo en Laravel, no estoy recibiendo el correo.

Aquí está la respuesta cuando la API se llama desde Laravel. Noté que el campo emailed es falso.

En la respuesta de Postman, el campo emailed es verdadero.

¿Alguna recomendación? Gracias.

alguien más también reportó esto,

revisa este tema

Sí, ese fue un error diferente que ya se resolvió. El problema ahora es que no estamos recibiendo correos electrónicos, aunque el uso de la API es exitoso.

No estoy seguro de si necesitamos habilitar algo, ya que cuando llamo a la API en Postman recibo el correo, pero en la aplicación de Laravel que hemos creado no estamos recibiendo los correos.

Hola @yburhaniel,

Es un tema antiguo, pero estoy experimentando un problema similar. La solicitud de API a invite.json genera enlaces de invitación, pero no envía el correo electrónico. Mientras que si el mismo usuario al que está vinculada la clave de API invita a los usuarios desde la interfaz de usuario, el correo electrónico se envía normalmente.

¿Cómo lo resolviste en ese entonces?

¿Estableciste send_email?

Estoy usando código de Python como este:

invitation = {
          "email": u.mail,
          "group_ids": valid_group_ids(u.groups),
          "send_email": True,
}

site.invites.post(data=invitation)

¿Nos mostrarías el código que estás usando?

Hola @thoka,

Gracias por tu respuesta. ¿Es realmente así de simple? ¡Sería una gran noticia!

Para este, estoy usando Zapier, pero con un objeto que creé siguiendo este documento de la API. Quizás ese no sea el documento correcto o me esté perdiendo algo más.

He probado muchos parámetros diferentes allí, pero el último es:

{
"email": "email@email.com",
"skip_email": false,
"custom_message": "Welcome to the forum",
}

También acabo de probar con lo siguiente. Desafortunadamente, eso no provocó el envío de la invitación:

{
"email": "email@email.com",
"skip_email": false,
"send_email": true,
"custom_message": "Welcome to the forum",
}

Pero tal vez las propiedades que tengo allí todavía están de alguna manera mal.

Siempre hago Reverse engineer the Discourse API para usar los mismos parámetros que la interfaz de usuario.

Buen material, gracias por señalarlo. Supongo que es un instinto que viene con más experiencia en Discourse. :slight_smile: De todos modos, ahora que lo mencionas, tiene todo el sentido.

¡Intentaré y te diré cómo me fue!

@thoka

Desafortunadamente, sigue siendo el mismo problema, estado OK 200, pero solo se genera el enlace de invitación.

La API de la interfaz de usuario solo tenía las propiedades explícitas expires_at y max_redemptions_allowed adicionales.

Por cierto, estoy usando el usuario system a través de la integración, ¿podría ser un problema? Dicho esto, creo que también usé un usuario “humano” real para probarlo.

Si creas invitaciones a través de la interfaz de usuario, ¿todo funciona como se esperaba?

@thoka

Sí, ese es el misterio, a través de la interfaz de usuario todo funciona sin problemas.

Aunque, noté que incluso si envío la invitación desde el perfil del usuario system / sección de invitaciones, todavía aparece en el correo electrónico de invitación que yo (mi usuario) soy quien envió la invitación.

Intentaría con una clave de API administrativa para tu nombre de usuario.
A través de la API deberías poder obtener el mismo comportamiento que a través de la interfaz de usuario.