Merge Users API 호출이 추가되었는데, 어떻게 호출해야 하나요?

안녕하세요,

어제 Merge Users 플러그인을 프로그래매틱하게 호출하는 방법에 대한 주제를 만들었습니다(현재 폐쇄됨). Rafael 님이 친절하게 릴리스 노트를 안내해 주셨는데, 해당 노트에는 이제 이 플러그인에 UI가 추가되었다는 언급이 포함되어 있습니다(Discourse 2.5.0.beta3 Release Notes). 안타깝게도 제 Discourse API 실력으로는 이를 API 호출로 변환하는 것이 쉽지 않습니다. 이 작업은 우리 애플리케이션에서 비교적 정기적으로 수행해야 하는 부분입니다. 도움을 주실 수 있을까요?

미리 감사드립니다.

Mark Pemburn
Blue Ocean Ideas

버튼은 사용자의 관리 페이지 하단에 표시됩니다.

image

사용 중 브라우저 개발자 도구를 열면 실행해야 할 요청을 확인할 수 있습니다.

Kane님, 안녕하세요!

팁을 주셔서 감사합니다! 샌드박스 Discourse에서 사용자를 몇 명 생성하는 데 시간이 좀 걸렸지만, 오늘 마침 성공했습니다. 개발자 도구의 Network 패널에서 확인한 내용을 Postman으로 재현해 보려고 시도했는데, 사용된 값은 다음과 같습니다:

Method: POST
Endpoint: https://my-discourse-sandbox/admin/users/{source user ID}/merge.json

Headers:

Content-Type: multipart/form-data
Accept: application/json

Params:

Api-Key: {create via the UI}
Api-Username: system
context: /admin/users/{source user ID/{source username}
target_username: {target username}

응답은 다음과 같았습니다:

    {
        "errors": [
            "The requested URL or resource could not be found."
        ],
        "error_type": "not_found"
    }

무엇이 잘못되고 있는지 혹시 아시는 분 계신가요?

한눈에 봐도 모두 정상이네요. target_username 값이 존재하는지 확인해 보셨나요?

Kane,

네, 소스와 대상 모두 현재 사용자입니다. 헤더를 제거하면 "Oops! That page doesn’t exist or is private."라고 적힌 HTML 페이지가 반환됩니다. 404 오류의 경우 "페이지가 존재하지 않습니다"라는 부분은 이해가 되지만, 여기서 "private"이 무엇을 의미하는지 확실하지 않습니다.

Mark

@mpemburn 이 작업에 성공하신 적이 있으신가요?

메일링 리스트를 Discourse 인스턴스로 이관하고 있습니다. 많은 분들이 서로 다른 이메일 주소를 사용했기 때문에, 이관 과정에서 실제 한 사람당 여러 개의 임시(staged) 사용자가 생성됩니다. API를 통해 사용자 병합을 자동화하고 싶습니다.