jidanni
(Dan Jacobson)
2월 10, 2023, 2:14오전
1
Reverse engineer the Discourse API 에서는
사이트에서 할 수 있는 모든 작업은 JSON API를 통해서도 수행할 수 있습니다.
라고 언급하고 있습니다.
하지만 https://docs.discourse.org/ 에 따르면
일부 엔드포인트는 인증이 필요하지 않지만, 거의 모든 다른 작업에는 인증이 필요합니다. 인증을 받으려면 관리자 패널 에서 API 키를 생성해야 합니다.
라고 되어 있습니다.
이것은 매우 아쉬운 점입니다. 왜냐하면 API에는 관리자만이 아닌 일반 사용자도 활용할 수 있는 정당한 용도가 많기 때문입니다.
예를 들어, 사용자가 설정에서 ‘다운로드’ 버튼을 클릭하는 대신 preferences.json을 다운로드하기 위해 월간 cron 작업을 설정할 수 있습니다.
(Backup/export/import Preferences ).
소스 코드 변경이 필요하다고 주장하는 이유는, 머지않아 전 세계의 사용자가 자신이 사용하는 로컬 Discourse의 API에 접근하여 개인 데이터 등을 가져올 수 있도록 하기 위해서입니다.
Alexander
(Alexander Barrios)
2월 10, 2023, 2:27오전
2
Discourse is backed by a complete JSON api. Anything you can do on the site you can also do using the JSON api.
The API is documented at docs.discourse.org . You can also use the discourse_api Ruby gem as a client library. However, not every endpoint is documented.
To determine how to do something with the JSON API here are some steps you can follow.
Example: recategorize a topic.
Go to a topic and start editing a category:
[image]
Open Chrome dev tools, switch to the Network tab, select …
Discourse contains a system for generating API keys per user if a very specific protocol is followed. This feature facilitates “application” access to Discourse instances without needing to involve moderators.
High level description
At a high level:
Client (desktop app, browser plugin, mobile app) generates a private/public key pair and return url
Client redirects to a route on discourse giving discourse its public key
Discourse gets approval from user to use app
Discourse generat…
(범위에 따라 인증된 요청을 보내도록 허용합니다)
이 자료들을 살펴보는 것이 좋을 것 같습니다. 매우 유용할 수 있습니다
jidanni
(Dan Jacobson)
2월 11, 2023, 1:13오전
3
Update openapi.yml - Pull Request #72#issuecomment-1426251563 - discourse/discourse_api_docs - GitHub 에서는 다음과 같이 설명하고 있습니다.
그러나 관리자의 지원과 사용자 API 키 사이트 설정에서 승인된 엔드포인트가 없다면, "일반 사용자"는 여전히 자신의 API 키를 생성할 수 없습니다.
그 응답은 정확하지 않습니다. 사용자 API 키 생성이 해당 사용자의 신뢰 수준에 대해 활성화되어 있다면, 모든 사용자가 사용자 API 키를 생성할 수 있습니다. 요청 페이로드에 리다이렉트를 설정하지 않으면 브라우저에 키가 포함된 base64 인코딩된 응답이 표시됩니다.
이 주제 에서 이것이 어떻게 수행되는지 보여주는 스크립트를 확인해 보세요.
jidanni
(Dan Jacobson)
2월 12, 2023, 1:55오전
5
기본 설정 상태에서 A가 Discourse를 설치하고, B는 A의 Discourse에서 단순한 사용자일 뿐이며, A가 관리자 설정을 변경하지 않은 경우, B가 API를 통해 얼마나 많은 작업을 수행할 수 있을지 고민하고 있습니다.
사용자 API 키 생성은 기본적으로 모든 사용자에게 활성화되어 있으며, 웹 인터페이스는 API의 프론트엔드에 불과하기 때문에 웹 인터페이스에서 할 수 있는 모든 작업을 API를 통해서도 수행할 수 있습니다.
저는 개인적으로 Chrome 확장 프로그램에서 이를 사용하고 있습니다. 이 확장 프로그램은 예외적인 몇 가지 인스턴스를 제외하고, 계정을 보유하고 있는 모든 인스턴스의 읽지 않은 알림을 실시간으로 집계해 줍니다.
blake
(Blake Erickson)
2월 14, 2023, 9:16오후
7
사용자가 이미 Discourse 인스턴스에 계정이 있다면, 브라우저의 쿠키 인증을 비브라우저 API 요청에서도 동일하게 사용할 수 있어야 합니다.