ariznaf
(fernando)
1월 14, 2022, 6:17오후
1
외부 프로그램에서 API 호출을 사용하여 일부 주제를 자동으로 생성하고 있습니다.
이제 이전에 Discourse에 생성된 일부 게시물에서 이미지를 추출하여 특정 카테고리의 로고 이미지를 자동으로 변경하려고 합니다.
하지만 API 문서에서 카테고리의 로고 이미지를 설정할 수 있는 옵션을 찾을 수 없었습니다. 색상, 이름, 텍스트 색상만 설정할 수 있었습니다.
Discourse API Docs
이를 수행할 수 있는 방법이 있을까요?
문서에서 잘못된 부분을 보고 있는 건가요?
미리 감사드립니다.
pfaffman
(Jay Pfaffman)
1월 14, 2022, 7:28오후
2
API에 대한 최고의 문서는 discourse입니다. Discourse API를 역공학하는 방법 을 참고하세요.
ariznaf
(fernando)
1월 15, 2022, 7:09오전
3
감사합니다. 더 자세히 살펴보겠습니다.
브라우저의 개발자 도구를 사용하여 분석할 수 있는 것 같습니다.
하지만 카테고리 로고 이미지의 경우 편집 모드가 없고, 대화상자를 열어 선택할 수 있는 버튼만 있습니다. 또한 브라우저에서 Discourse가 어떤 필드를 업데이트하는지 확인이 되지 않습니다.
제가 겪고 있는 문제는 로고를 설정할 수 있는 PUT 메서드가 없다는 것입니다.
모든 카테고리 속성을 설정할 수 있는 POST 메서드는 있습니다.
하지만 해당 POST 메서드는 카테고리를 생성하는 용도이지, 카테고리를 업데이트하고 속성을 변경하는 용도가 아닙니다.
어떤 방식으로든 카테고리를 업데이트하는 데 사용할 수 있을지도 모릅니다.
ariznaf
(fernando)
1월 15, 2022, 10:20오전
5
많은 도움 주셔서 감사합니다.
브라우저의 개발자 도구를 사용해 역공학(reverse engineering)을 시도해 보았습니다.
네, 먼저 uploads.json을 사용해 업로드하는 것 같습니다.
우리의 경우 이미지는 이미 시스템에 존재하며, 게시글에 내장된 사진이므로, 게시글에서 ID를 가져올 수 있을 것 같습니다.
그리고 Foro OjoDigital - la comunidad hispano hablante de los amantes de la fotografía. ?
에 PUT 메서드를 사용하고, uploaded_logo_id={image_id}만 전달하면 되는 건가요? 다른 정보는 필요 없나요?
감사합니다. 시도해 보겠습니다.
ariznaf
(fernando)
1월 15, 2022, 5:08오후
7
감사합니다. 시도해 보겠습니다. 프로그래머와 상의하겠습니다.
mattdm
(Matthew Miller)
1월 16, 2022, 1:53오후
8
Discourse에서 새로운 이미지 업로드 API를 사용하는 예시는 다음을 참고하세요.
네, 포함된 배지들은 … 꽤 좋습니다. 전혀 문제없는 것이죠. 하지만 더 많은 것을 원한다면요? 사전 정의된 심볼 세트를 넘어 서고 싶다면요? 물론 업로드할 수 있는 관리자 페이지가 있습니다. 하지만 배지를 아주 많이 만들고 싶다면요?
좋습니다! API를 통해 이를 수행할 수 있습니다. 어떻게 작동하는지 보여주는 Python 코드를 아래에 첨부합니다. (완벽함을 위해 마지막에 배지를 수여하는 부분도 포함되어 있습니다.)
Python 프로그래머가 아니더라도 읽기 꽤 쉬울 것입니다. 원하시면 curl을 사용하여 명령줄에서 이를 재현할 수도 있습니다.
이 코드는 API 키가 환경 변수 DISCOURSE_API_KEY에 설정되어 있음을 전제로 합니다.
#!/usr/bin/python3
import os # 환경 변수 읽기용
import sys # 종료용.
import hashlib # 이미지 해시용
import requests # 실제 작…
다른 목적을 위한 것이지만, 동일한 원리가 적용될 가능성이 높습니다.