개발자가 생성한 App
에서 채널톡 API 를 사용하기 위해서는 토큰을 발급받아야 합니다.
먼저 개발자 페이지의 [앱 설정]
- [인증 및 권한 탭]
에서부터 아래 과정을 따라해주세요.
1. App Secret 발급
토큰 발급을 위해서는 App Secret
을 먼저 발급받아야 합니다. 앱 설정 페이지 상단의 발급하기 버튼을 눌러 시크릿을 발급할 수 있습니다. 해당 시크릿은 외부에 노출되지 않도록 주의해 주세요. 토큰을 재발급하는 경우 이전에 발급된 토큰은 비활성화됩니다.
2. App 의 권한 등록
Channel
, User
, Manager
섹션에서 개발자가 사용할 함수를 체크하여 고른 뒤 저장해야 합니다. 각각의 함수에 대한 설명은 여기를 참조해 주세요.
User
, Manager
섹션에 등록한 권한은 WAM 에 전달되는 토큰에 포함되게 됩니다.
Channel
섹션에 등록한 권한은 아래 (3) 과정을 통해 토큰으로 발급받을 수 있습니다.
3. Native function 을 이용해 토큰 교환
App Secret
을 발급받았다면 아래와 같은 요청을 통해 토큰을 교환할 수 있습니다
IssueToken
method | PUT |
---|---|
endpoint | app-store-api.channel.io/general/v1/native/functions |
notes | App Secret 을 이용해 token 을 교환합니다 |
-
Request
{ "method": "issueToken", "params": { "secret": "" "channelId": "" } }
fields notes required type secret (1) 에서 발급한 App secret true string channelId 특정 채널에 대한 토큰 발급 시 기입 false string channelId
를 명시하지 않을 경우 앱의 기본 토큰이 발급됩니다.아래와 같은
Native Function
에 대한 권한이 포함됩니다.-
registerCommands - 앱에 커맨드를 등록하기 위한 기능입니다. Command 문서를 참고해주세요.
channelId
를 명시할 경우 인증 및 권한의 Channel Permissions 에서 요청한 권한을 포함해 토큰을 발급할 수 있습니다. 이 경우, 해당 채널에ㅍ 앱이 설치되어 있어야 합니다.
-
-
Response
{ "accessToken": "{access-token}", "refreshToken": "{refresh-token}", "expiresIn": 1800, }
fields notes required type refreshToken refreshToken. 아래 api 참조 true string accessToken accessToken, 아래 사용 방법 참조 false string expiresIn expire 되는 시간. second 단위 true int64 accessToken
에 발급된 토큰이 위치하며,refreshToken
의 사용은 아래를 참조해 주세요.
refreshToken
method | PUT |
---|---|
endpoint | app-store-api.channel.io/general/v1/native/functions |
notes | refreshToken 을 이용해 토큰을 재발급합니다 |
-
Request
{ "method": "refreshToken", "params": { "refreshToken": "{refresh-token}" } }
params notes refreshToken issueToken 의 response 로 발급받은 refreshToken -
Response
PUT app-store-api.channel.io/general/v1/native/fucntions x-access-token: "{token}" ... { "method": "writeUserChatMessage" "params": { ... } }
4. 교환된 토큰의 사용
You can use jwt tokens on **x-access-token
http **header when using Native Functions
or Functions
.
Example using x-access-token
on Function
calling)
PUT app-store-api.channel.io/general/v1/native/fucntions
x-access-token: "{token}"
...
{
"method": "writeUserChatMessage"
"params": { ... }
}