API와 Python을 사용하여 특정 게시글을 플래그 처리하고 있습니다. 최근 3.2.0.beta4-dev로 업그레이드하기 전까지는 수년간 잘 작동했는데, 이제는 DiscourseClientError: You are not permitted to view the requested resource.라는 오류가 발생합니다. API 키는 여전히 유효하며 폐기되지 않았습니다. 게시글을 수동으로 플래그 처리하여 역추적해 본 결과, 플래그 처리 페이로드는 변경되지 않았습니다(아마도 flag_topic 값은 변경되었을 수 있지만, 이는 중요하지 않아 보입니다). 혹시 아이디어가 있으신가요?
self._post(
"/post_actions",
id=post_id,
post_action_type_id=7, # flag it
message=msg,
flag_topic=True
)
최근 플래깅 관련 변경 사항 중 하나는 신뢰 수준 1(flag post allowed groups) 대비 그룹 활성화 설정으로의 전환이었습니다. 이 부분이 어떤 식으로든 연결될 수 있을까요?
내 설정:
내 API 키:
그러니까 이제 '모든 사용자(All Users)'에는 플래그 지정 권한이 없고, 플래그 지정 권한이 있는 ‘단일 사용자(Single User)’(예를 들어 나)를 위한 새로운 API 키가 필요한 건가요? "All Users"가 정확히 무엇을 의미하는지 제게는 명확하지 않습니다. TL0인가요?
이론적으로 TL1의 기본값이 설정 전환 과정에서 동일하게 유지되었으므로, API 키에 대한 동일한 권한이 여전히 작동할 것이라고 생각했습니다. 다만 이제 신뢰 수준이 아닌 그룹 기반이므로, 다른 요인이 영향을 미치고 있을 수도 있습니다. 그룹의 가시성이 다른 설정 중 하나로 이동된 설정에서 발생한 또 다른 특이한 현상의 원인이 된 사례가 보고된 바 있습니다. 혹시 TL1 그룹의 가시성을 변경해 본 적이 있으신가요?
아니요, 모든 그룹이 표시됩니다.
새로운 API 키로도 시도해 보았습니다. 이번에는 단일 사용자 "discobot"용 키를 사용했으며, 웹훅이 discobot 사용자로 실행되므로 discobot이 TL0이기 때문에 flag post allowed groups를 TL0으로 변경했습니다. 하지만 여전히 같은 오류가 발생합니다: You are not permitted to view the requested resource.
TL1로 @discobot를 상향 조정했더니 이제 정상 작동합니다. 결론이 뭔지는 확실하지 않지만, 사용자가 신뢰 수준과 그룹 기반 설정 두 가지를 모두 충족하는지 확인하세요. 그럼에도 불구하고 왜 예전에는 작동하다가 갑자기 깨졌는지는 설명할 수 없습니다.
음. 확실하지 않아요
그래도 지금은 잘 작동하니 다행이네요.
변경 사항을 만든 개발자에게 연락해서 더 자세한 내용이 있는지 확인해 봤어요. 하지만 다시 정상적으로 작동하고 있으니, 더 깊이 파고들기 전에 추가 보고를 기다려야 할 수도 있어요.
음, 처음에는 잠깐 작동했어요. 하루 정도 됐을까요. 그런데 @discobot이 다시 플래그를 붙일 수 없게 됐어요. 분명히 API와는 무관한 문제예요. @discobot으로 위장해서 토픽을 둘러보면 플래그 아이콘이 보이지 않거든요. 그런데 @discobot의 신뢰 등급을 변경하면—even 더 낮은 등급으로—even 플래그 아이콘이 다시 나타나요. 더 정확하게 설명해 보려 하지만, 뭔가 잘못되어 있는 것 같아요.
또한 이 문제가 @discobot에만 나타나는지 확실하지 않아요. @discobot을 사용한 이유는, 당연히 게시글을 자동 플래그로 처리할 사용자로 기대되는 계정이기 때문이에요. 그리고 몇 년 동안 잘 작동했었거든요.
다른 사용자로 확인해 보시는 것이 좋을 것 같습니다. 마법 같은 기능이 Discobot과 System을 신뢰 수준 그룹에서 제거하기 때문에, 해당 사용자를 기반으로 신뢰 수준 그룹을 사용하는 경우 이상한 결과가 나타날 수 있습니다(현재 포럼을 업데이트할 때마다 해당 사용자가 다시 추가되고, 잠시 후 다시 제거됩니다).
결과를 더 명확하게 확인하시려면 테스트용 사용자를 따로 만들어 보시는 것을 권장합니다.
좋아요, API를 통해 플래깅을 수행하기 위해 특정 사용자를 만들었습니다. 어떻게 될지 지켜보겠습니다…