# Patreon이 우리 인스턴스에서 동기화되지 않는 것 같습니다

**URL:** https://meta.discourse.org/t/patreon-does-not-appear-to-be-syncing-on-our-instance/398944
**Category:** Support
**Tags:** patreon, hosted-support
**Created:** [3월 21, 2026, 4:56오전 UTC](https://meta.discourse.org/t/patreon-does-not-appear-to-be-syncing-on-our-instance/398944 "2026-03-21T04:56:35Z")
**Posts on this page:** 1
**Showing post:** 3

<div class="post-metadata">

### Author: ![Cazadividendos](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/cazadividendos/32/138705_2.png) [@Cazadividendos](https://meta.discourse.org/u/Cazadividendos)
#### Post date: [8월 23, 2026, 7:39오후 UTC](https://meta.discourse.org/t/patreon-does-not-appear-to-be-syncing-on-our-instance/398944/3 "2026-08-23T19:39:05Z")

</div>

안녕하세요,

이 문제의 원인을 찾았거나, 적어도 Patreon API v2 동기화 문제와 밀접하게 관련된 문제를 발견한 것 같습니다.

저는 Patreon 통합 기능을 API v2로 사용하는 Discourse 인스턴스를 운영 중입니다. 기존 Patreon 사용자는 여전히 `patrons` 그룹에 올바르게 할당되고 있지만, 새로운 유료 멤버는 **Patreon 데이터 업데이트** 를 수동으로 실행해도 그룹에 추가되지 않았습니다. 동기화는 성공적으로 완료되었으며, Patreon의 이메일 주소는 해당 사용자의 Discourse 이메일 주소와 정확히 일치했습니다.

`patreon_verbose_log`가 활성화된 상태에서 동기화 로그는 다음과 같이 보고됩니다:

```plaintext
Patreon sync: found 4 rewards/tiers across 1 campaigns
Patreon sync complete: 1968 pledges, 0 users synced

```

이후 `ApiVersion::V2`가 사용한 API 응답을 조사했습니다.

1,000명 규모의 첫 페이지에 대해:

```plaintext
Members in data: 1000
Included total: 1004
Included users: 1000
Keys for first included user: ["full_name"]
Included users with email: 0

```

그러나 `member` 객체 자체에는 이메일이 포함되어 있습니다:

```plaintext
Members: 1000
Keys for first member:
["currently_entitled_amount_cents", "email", "full_name",
 "last_charge_date", "last_charge_status", "patron_status"]

Members with email: 928

```

`plugins/discourse-patreon/lib/api_version/v2.rb`를 살펴보면, `MEMBER_FIELDS`는 명시적으로 `email`을 요청하지만, `V2.extract`는 `included`의 관련 `user` 객체로부터만 `users` 해시를 채웁니다:

```plaintext
(member_data["included"] || []).each do |entry|
  if entry["type"] == "user" && entry["attributes"]["email"].present?
    users[entry["id"]] = entry["attributes"]["email"].downcase
  end
end

```

제 API 응답에서 Patreon이 이메일을 반환하는 곳은 `member` 객체임에도 불구하고, `member` 객체의 `entry["attributes"]["email"]`를 사용하지 않는 것으로 보입니다.

이것이 동기화는 1,968개의 후원(pledges)을 모두 성공적으로 가져오지만 `0 users synced`라고 보고하는 이유를 설명하는 것 같습니다.

또한 기존 Patreon/Discourse 연결은 계속 작동하면서 새 멤버는 이메일로 매칭되지 못하는 이유도 설명합니다. 기존 사용자는 이미 `user_custom_fields`에 `patreon_id`가 저장되어 있을 수 있지만, 새 멤버의 경우 Patreon ID ↔ 이메일 연결 관계를 확립해야 하기 때문입니다.

`V2.extract`가 각 멤버를 처리하면서 `users`를 직접 채우도록 하는 것이 합리적일까요? 예를 들어 다음과 같이:

```plaintext
patron_id = entry["relationships"]["user"]["data"]["id"]
attrs = entry["attributes"]

if attrs["email"].present?
  users[patron_id] = attrs["email"].downcase
end

```

현재의 `included` 처리를 폴백(fallback)으로 유지하면서요?

---

_[View the full topic](https://meta.discourse.org/t/patreon-does-not-appear-to-be-syncing-on-our-instance/398944)._
