서버 API
개요 및 주의사항
- 채팅을 사용하는 웹상이 아닌 다른 환경에서 채팅방에 명령 또는 액션을 취하기 위해 개발되었습니다.
- 보안을 위해 사용자의 브라우저에서 직접 API를 호출하는것은 권장하지 않습니다. 브라우저에서 요청을 바로 보내는것을 막기 위해 API 요청시 User-Agent 헤더를 uchat_api_client_vx로 설정하셔야 합니다.
- API 토큰은 채팅방 설정 페이지에서 확인 가능합니다.
- 현재 APIᅟ는 플러그인에 메세지를 전달하기만 가능합니다.
주의
유챗은 접속자의 브라우저에서 API를 직접 호출하는것을 권장하지 않습니다. 이는 API 토큰유출 및 유출로 인한 악용이 심히 우려되기 때문입니다.
이러한 문제를 막고자, API를 호출할때 User-Agent를 uchat_api_client_vx로 설정하셔야 합니다.
*일반 브라우저에서는 User-Agent조작을 지원하지 않습니다. User-Agent 설정을 통해 브라우저에서 직접 API를 호출하는것을 막는것이 목적입니다.
요청 미리보기
curl -X POST "https://api.uchat.io/plugin/youtube" \
-A “uchat_api_client_v1” \
-H "X-UCHAT-API-ROOM: test1" \
-H "X-UCHAT-API-TOKEN: c2547eb745079dac9320b638f5e225cf" \
--data '[123456789123]'
해당 요청은 test1이라는 채팅방에 설치되어 있는 youtube플러그인에 데이터를 보내는 예제입니다.
여기서 확인하셔야 할것은,
- API 요청 주소는 타입(plugin)/구분값(youtube)로 구성된다는 것,
- User-Agent를 uchat_api_client_vAPI 버전명으로 설정했다는것 (-A “uchat_api_client_v1”)
- 헤더에 X-UCHAT-API-ROOM를 넣어서 서버 API의 대상 서버를 선택할 수 있다는것, (-H "X-UCHAT-API-ROOM: test1")
- 헤더에 X-UCHAT-API-TOKEN을 넣어서 API 토큰을 보낸다는것 입니다.
지원 메소드 v1
아래의 메서드들은 서버 API 버전1에서만 사용 가능합니다.
/plugin
특정 플러그인에게 데이터를 송/수신 할 수 있습니다.
/plugin/{플러그인 ID}
POST특정 플러그인에게 데이터를 전송합니다.
POST내용을 플러그인에게 전달합니다. 전송할 데이터는 배열로 감싸진 ([]으로 감싸진) JSON이어야 합니다.
HTTP 요청 예시
POST /plugin/[PLUGIN_ID] HTTP/1.1
User-Agent: uchat_api_client_v1
X-UCHAT-API-ROOM: test1
X-UCHAT-API-TOKEN: c2547eb745079dac9320b638f5e225cf
[{123456789}, {'test': '1234'}]
POST /plugin/youtube HTTP/1.1
User-Agent: uchat_api_client_v1
X-UCHAT-API-ROOM: test1
X-UCHAT-API-TOKEN: c2547eb745079dac9320b638f5e225cf
[123456789123]