L'API Create Invite n'envoie pas d'e-mails

Hi,

I’ve been sending invites using the api (Discourse API Docs). When I send it on postman, I am getting the invite email. But when I implement it on laravel I’m not getting the email.

Here is the response when the api from laravel. I noticed that the emailed field is false.
image

Postman response the emailed field is true.

Any advice? Thanks.

someone else also reported this,

check this topic

yes this was a different error which was already resolved. the issue now is we’re not getting emails but using the api is successful.

i’m not sure if we need to enable anything? coz when i call the api on postman i get the email but on the laravel app we’ve created we’re not getting the emails.

Salut @yburhaniel,

C’est un vieux sujet, mais je rencontre un problème similaire. Les requêtes API vers invite.json génèrent des liens d’invitation, mais n’envoient pas l’e-mail. Alors que si le même utilisateur auquel la clé API est liée invite les utilisateurs depuis l’interface utilisateur, l’e-mail est envoyé normalement.

Comment avez-vous résolu cela à l’époque ?

Avez-vous défini send_email ?

J’utilise du code python comme ceci :

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

site.invites.post(data=invitation)

Pourriez-vous nous montrer le code que vous utilisez ?

Salut @thoka,

Merci pour votre réponse. Est-ce vraiment aussi simple ? Ce serait une excellente nouvelle !

Pour celui-ci, j’utilise Zapier, mais avec un objet que j’ai créé en suivant cette documentation d’API. Peut-être que ce n’est pas la bonne documentation ou qu’il me manque quelque chose d’autre.

J’ai essayé de nombreux paramètres différents, mais le dernier est :

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

J’ai également essayé avec ce qui suit. Malheureusement, cela n’a pas entraîné l’envoi de l’invitation :

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

Mais peut-être que les propriétés que j’ai là sont toujours erronées d’une manière ou d’une autre.

Je fais toujours Reverse engineer the Discourse API pour utiliser les mêmes paramètres que l’interface utilisateur.

Bon travail, merci de me l’avoir signalé. C’est un instinct qui vient avec une plus longue expérience de Discourse, je suppose. :slight_smile: Quoi qu’il en soit, maintenant que vous le dites, cela a tout à fait du sens.

Laissez-moi essayer et je reviendrai ici pour vous dire comment cela s’est passé !

@thoka

Malheureusement, le problème persiste, le statut est OK 200, mais seul le lien d’invitation est généré.

L’API de l’interface utilisateur comportait simplement en plus les propriétés explicites expires_at et max_redemptions_allowed.

Au fait, j’utilise l’utilisateur system via l’intégration, est-ce que cela pourrait poser un problème ? Cela dit, je pense avoir aussi utilisé un utilisateur “humain” réel pour tester.

Si vous créez des invitations via l’interface utilisateur, tout fonctionne comme prévu ?

@thoka

Oui, c’est le mystère, via l’interface utilisateur, tout fonctionne sans problème.

Cependant, j’ai remarqué que même si j’envoie l’invitation depuis la section des profils / invitations de l’utilisateur system, il est toujours indiqué dans l’e-mail d’invitation que c’est moi (mon utilisateur) qui ai envoyé l’invitation.

J’essaierais avec une clé d’API administrative pour votre nom d’utilisateur.
Via l’API, vous devriez pouvoir obtenir le même comportement qu’en passant par l’interface utilisateur.