안녕하세요,
API(Discourse API Docs)를 사용하여 초대장을 보내고 있습니다. Postman에서 요청을 보내면 초대 이메일을 받을 수 있습니다. 하지만 Laravel에서 구현했을 때는 이메일을 받지 못합니다.
Laravel에서 API를 호출했을 때의 응답은 다음과 같습니다. emailed 필드가 false로 되어 있는 것을 확인했습니다.
Postman 응답에서는 emailed 필드가 true로 되어 있습니다.
조언을 주실 수 있을까요? 감사합니다.
네, 이건 이미 해결된 다른 오류였습니다. 현재 문제는 이메일을 받지 못하는 것인데, API 호출 자체는 성공적으로 이루어지고 있습니다.
무언가를 활성화해야 하는지 잘 모르겠습니다. Postman에서 API를 호출하면 이메일이 도착하는데, 우리가 만든 Laravel 앱에서는 이메일을 받지 못하거든요.
pko
4
안녕하세요 @yburhaniel,
이미 오래된 주제이지만, 비슷한 문제를 겪고 있습니다. invite.json에 대한 API 요청은 초대 링크를 생성하지만 이메일은 보내지 않습니다. 반면, 동일한 API 키가 연결된 사용자가 UI에서 사용자를 초대하면 이메일은 정상적으로 전송됩니다.
당시 어떻게 이 문제를 해결하셨나요?
thoka
(Thomas Kalka)
5
send_email을 설정했나요?
저는 다음과 같은 Python 코드를 사용하고 있습니다:
invitation = {
"email": u.mail,
"group_ids": valid_group_ids(u.groups),
"send_email": True,
}
site.invites.post(data=invitation)
사용 중인 코드를 보여줄 수 있을까요?
pko
6
안녕하세요 @thoka,
답변해 주셔서 감사합니다. 정말 그렇게 간단한 거라면 정말 좋은 소식이겠죠!
이 기능은 Zapier를 사용 중인데, 이 API 문서를 참고하여 제가 직접 만든 객체를 사용하고 있습니다. 혹시 문서를 잘못 찾았거나 제가 놓치고 있는 다른 부분이 있을까요?
여기서 다양한 파라미터를 여러 번 시도해 보았는데, 가장 최근에는 다음과 같이 사용했습니다:
{
"email": "email@email.com",
"skip_email": false,
"custom_message": "Welcome to the forum",
}
또는 다음과 같이도 시도해 보았습니다. 하지만 불행히도 초대장이 전송되지 않았습니다:
{
"email": "email@email.com",
"skip_email": false,
"send_email": true,
"custom_message": "Welcome to the forum",
}
아마도 제가 사용한 속성 값들이 여전히 어딘가에서 잘못되었을지도 모르겠습니다.
thoka
(Thomas Kalka)
7
저는 항상 Reverse engineer the Discourse API 을 참고하여 UI와 동일한 매개변수를 사용합니다.
pko
8
좋은 지적 감사합니다. 아마도 Discourse를 오래 사용하면서 생긴 직관인 것 같습니다.
아무튼 말씀해 주시니 완전히 이해가 되네요.
한번 시도해 보고, 어떻게 되었는지 다시 알려드리겠습니다!
pko
9
@thoka
아쉽게도 여전히 동일한 문제가 발생하고 있습니다. 상태는 OK 200이지만, 초대 링크만 생성됩니다.
UI를 통해 API를 호출했을 때 expires_at와 max_redemptions_allowed 속성이 명시적으로 추가 설정되어 있었습니다.
참고로, 인테그레이션을 통해 system 사용자를 사용하고 있는데, 이것이 문제가 될 수 있을까요? 그럼에도 불구하고, 테스트를 위해 실제 “인간” 사용자도 사용해 보았습니다.
thoka
(Thomas Kalka)
10
UI를 통해 초대장을 생성하면 모든 기능이 정상적으로 작동하나요?
pko
11
@thoka
네, 그게 바로 의문스러운 점이에요. UI를 통해서는 아무 문제 없이 잘 작동하거든요.
다만, system 사용자의 프로필/초대 섹션에서 초대를 보내도, 초대 이메일에는 여전히 저(제 사용자 계정)가 초대를 보낸 것으로 표시된다는 걸 발견했어요.
thoka
(Thomas Kalka)
12
사용자 이름에 대한 관리자용 API 키로 시도해 보시는 것을 권장합니다.
API를 통해 UI와 동일한 동작을 얻을 수 있어야 합니다.