제가 관리하는 사이트는 SSO를 통해 Discourse를 사용합니다. 내 사이트의 사용자가 사이트에서 생성된 이메일 구독을 해제할 때, 해당 사용자의 Discourse 이메일 구독도 함께 해제하고 싶습니다. UI를 통해 사용자 이메일 설정을 변경할 때 발생하는 API 호출을 확인하면 필요한 사항을 파악할 수 있을 것 같지만, 더 쉬운 방법이 있는지 궁금합니다.
사용자가 사이트 이메일과 커뮤니티 이메일 모두를 원하지 않는 경우가 항상 그런가요?
한 가지만 해제하고 다른 하나는 유지하고 싶을 가능성이 있다면, 사용자가 Discourse 이메일 설정을 관리할 수 있는 페이지로 단순히 링크를 걸어주는 것은 어떨까요?
네. 관리팀에서 사용자가 사이트 이메일 구독을 취소할 때 discourse 이메일 구독도 취소하도록 지시했습니다.
후속 정보를 원하시는 분들을 위해:
저의 요구 사항은 리버스 엔지니어링 가이드를 따름으로써 충족되었습니다. PUT 페이로드의 내용을 수집하는 과정은 상당히 직관적이었습니다.
Ruby에서 제가 최종적으로 사용한 페이로드는 다음과 같습니다:
payload = {mailing_list_mode: false, mailing_list_mode_frequency: 1, email_digests: false, email_in_reply_to: false, email_messages_level: 2, email_level: 2, email_previous_replies: 2 }
mailing_list_mode가 false이므로 'mailing_list_mode_frequency’는 제외해도 될 가능성이 높습니다.
이 페이로드는 https://DISCOURSEHOST/u/USERNAME.json?api_key=DISCOURSE_SYSTEM_API_KEY&api_username=system으로 PUT됩니다.
같은 로직을 구현했지만, 웹사이트의 사용자 이메일 설정에 값이 반영되지 않습니다.
api_key와 api_username을 쿼리 파라미터로 전달하는 방식은 이제 비추천(deprecated)되며, 이제는 Api-Key와 Api-Username 헤더를 사용해야 합니다.