API를 통해 주제 상태를 pinned-global로 변경하면 작동하지 않음

저는 API 문서를 참고하여 게시물의 상태를 'pinned-globally’로 설정하는 Discourse API를 사용하는 Python 스크립트를 작성하고 있습니다.

‘pinned-globally’ 요청은 400 반환 코드로 실패하지만, 상태 매개변수가 'pinned’으로 설정된 요청은 완벽하게 정상 작동합니다(즉, 게시물이 로컬로 고정된 것을 확인할 수 있습니다). 제 코드 조각은 다음과 같습니다:

apiWebsite = '<my_website_URL>'
apiKey = '<secret>'
apiUsername = '<secret>'

headers = {
    'Api-Key': apiKey,
    'Api-Username': apiUsername
}


# 이 요청은 정상 작동합니다
# 동일한 게시물을 로컬로 고정
payload = {
    'status': 'pinned',
    'enabled': 'true',
    'until': '2019-11-25T08:00:00'
}
u = requests.put(apiWebsite + '/t/29082/status', headers=headers, data=payload)
print(u.status_code)

고정 상태를 false로 되돌린 후, 다음과 같이 전역으로 고정하려고 합니다.

# 이 요청은 작동하지 않습니다
# 동일한 토픽을 전역으로 고정
payload = {
    'status': 'pinned-globally',
    'enabled': 'true',
    'until': '2019-11-25T08:00:00'
}
u = requests.put(apiWebsite + '/t/29082/status', headers=headers, data=payload)
print(u.status_code)

제가 뭘 놓치고 있는 건가요, 아니면 진짜 버그인가요?

P.S. 해당 사용자는 충분한 권한을 가지고 있습니다.

2개의 좋아요

같은 주제를 전역과 로컬에 동시에 고정할 수 없습니다. 둘 중 하나만 선택할 수 있습니다.

1개의 좋아요

데이비드, 안녕하세요.
물론, 두 요청이 어떻게 다른지 보여주기 위해 코드를 그렇게 작성한 것입니다.
더 명확하도록 첫 번째 게시물을 수정하겠습니다.

1개의 좋아요

아, 좋습니다 :ok_hand:. 코드를 살펴보니 400 오류를 유발하는 부분이 보입니다.

pinned-globally 대신 pinned_globally를 사용해야 할 것 같습니다. 그렇게 바꿔서 작동하는지 확인해 보시겠어요? API 문서에 오타가 있는 것 같네요. 수정하겠습니다.

수정: Correct pinned_globally in topic status documentation · discourse/discourse_api_docs@fcf0d5f · GitHub 에서 수정했습니다.

5개의 좋아요

확인했습니다! :slight_smile:
정말 감사합니다! :clap:

3개의 좋아요