사이드 메뉴
커뮤니케이션
API 제공
어드민 API
내 애플리케이션: 권한
이 문서는 제공 종료된 구버전 어드민 API에 대해 안내합니다. 신규 어드민 API에 대한 자세한 내용은 신규 어드민 API 제공 안내에서 확인할 수 있습니다.
이 문서는 카카오디벨로퍼스 앱(애플리케이션)의 권한에 대한 어드민 API 사용 방법을 안내합니다.
:app_id부분에 요청 대상 앱 ID를 입력해야 합니다.
| 메서드 | 호스트 | 리소스 |
|---|---|---|
POST | internal-admin-kapi.kakao.com | /app/:app_id/permission |
| 이름 | 설명 |
|---|---|
| FIND_ALL | 앱이 소유한 모든 권한의 코드를 조회합니다. |
| HAS_APP_PERMISSIONS | 앱이 특정 권한들을 소유하고 있는지 확인합니다. |
| HAS_APP_PERMISSION | 앱이 특정 앱 설정 권한을 소유하고 있는지 확인합니다. |
| HAS_SERVICE_PERMISSION | 앱이 특정 서비스 권한을 소유하고 있는지 확인합니다. |
| HAS_API_PERMISSION | 앱이 특정 API 권한을 소유하고 있는지 확인합니다. |
| HAS_REVIEW_API_PERMISSION | 앱이 검수가 필요한 특정 API 사용 권한을 소유하고 있는지 확인합니다. |
| HAS_PERMISSIONS | 권한 코드로 앱이 특정 권한들을 소유하고 있는지 확인합니다. |
| HAS_PERMISSION | 권한 코드로 앱이 특정 권한을 소유하고 있는지 확인합니다. |
| ADD | 앱에 특정 권한을 부여합니다. |
| REMOVE | 앱이 소유한 특정 권한을 회수합니다. |
앱이 소유한 모든 권한의 코드를 조회합니다. 권한 코드는 숫자 값이며 각각 하나의 권한에 해당합니다.
요청 처리 성공 시 응답은 앱이 소유한 권한의 코드 목록을 payload에 포함합니다. 각 서비스의 권한 코드 값은 어드민 API 사용 권한 부여 시 전달받은 권한 정보를 참고합니다.
요청 페이로드
- 없음
응답 페이로드
- 권한 코드의 배열
요청 예제
curl -v POST "https://internal-admin-kapi.kakao.com/app/:app_id/permission" \-H "Content-Type: application/json; charset=utf-8" \-H "ADMIN-API-META-RENDER: simple" \-u "${GROUP_NAME}:${GROUP_TOKEN}" \-H "ADMIN-API-USERID: ${USER_INFO}" \-d $'{"name": "FIND_ALL"}'
응답 예제
// HTTP/2 200[5, 7, 15, 16, 18, 29, 37, 38, 39, 40, 41, 52, 102, 103, 104, 151, 152]
응답 예제: 앱이 소유한 권한 없음
// HTTP/2 200[]
앱이 특정 권한들을 소유하고 있는지 확인합니다.
요청 시 소유 여부를 확인할 권한의 액션 타입의 배열을 action_type 파라미터로 전달해야 합니다. 어드민 API 권한 부여 시 전달받은 값을 사용합니다.
요청 처리 성공 시 응답은 앱의 각 권한 소유 여부를 Map 형식으로 payload에 포함합니다.
요청 페이로드
| 이름 | 타입 | 설명 | 필수 |
|---|---|---|---|
| action_type | String[] | 액션 타입 목록 | O |
응답 페이로드
action_type별 키, 권한 소유 여부를 나타내는Boolean값으로 구성된Map형식의JSONtrue: 해당 권한 소유false: 해당 권한 없음
요청 예제
curl -v POST "https://internal-admin-kapi.kakao.com/app/:app_id/permission" \-H "Content-Type: application/json; charset=utf-8" \-H "ADMIN-API-META-RENDER: simple" \-u "${GROUP_NAME}:${GROUP_TOKEN}" \-H "ADMIN-API-USERID: ${USER_INFO}" \-d $'{"name": "HAS_APP_PERMISSIONS","payload": {"action_type": ["INCREASED_DOMAIN_COUNT","KAKAO_VERIFIED"]}}'
응답 예제
// HTTP/2 200{"INCREASED_DOMAIN_COUNT": true,"KAKAO_VERIFIED": false}
응답 예제: 요청 처리 실패, 잘못된 액션 타입에 대해 요청한 경우
// HTTP/2 400{"action_type[0]": {"description": "Invalid Enum","message": "${MESSAGE}","args": []}}
앱이 특정 앱 설정 권한을 소유하고 있는지 확인합니다.
요청 시 소유 여부를 확인할 권한의 액션 타입을 action_type 파라미터로 전달해야 합니다. 어드민 API 권한 부여 시 전달받은 값을 사용합니다.
요청 처리 성공 시 응답은 앱의 해당 앱 설정 권한 소유 여부를 payload에 포함합니다.
요청 페이로드
| 이름 | 타입 | 설명 | 필수 |
|---|---|---|---|
| action_type | String | 앱 설정 권한의 액션 타입 | O |
응답 페이로드
- 해당 권한 소유 여부를 나타내는
Boolean값true: 해당 권한 소유false: 해당 권한 없음
요청 예제
curl -v POST "https://internal-admin-kapi.kakao.com/app/:app_id/permission" \-H "Content-Type: application/json; charset=utf-8" \-H "ADMIN-API-META-RENDER: simple" \-u "${GROUP_NAME}:${GROUP_TOKEN}" \-H "ADMIN-API-USERID: ${USER_INFO}" \-d $'{"name": "HAS_APP_PERMISSION","payload": {"action_type": "KAKAO_VERIFIED"}}'
응답 예제
// HTTP/2 200false
응답 예제: 요청 처리 실패, 잘못된 액션 타입에 대해 요청한 경우
// HTTP/2 400{"action_type": {"description": "Invalid Enum","message": "${MESSAGE}","args": []}}
앱이 특정 서비스 권한을 소유하고 있는지 확인합니다.
앱은 특정 서비스와 관련된 기능을 사용하려면 해당 서비스 권한을 갖고 있어야 합니다. 이 액션으로 앱이 특정 서비스 권한을 소유하고 있는지 확인할 수 있습니다.
요청 시 권한 소유 여부를 확인할 서비스 타입을 service_type 파라미터로 전달해야 합니다.
요청 처리 성공 시 응답은 앱의 해당 서비스 권한 소유 여부를 payload에 포함합니다.
요청 페이로드
| 이름 | 타입 | 설명 | 필수 |
|---|---|---|---|
| service_type | String | 서비스 타입 서비스 타입의 종류는 ServiceType에서 확인 가능 | O |
응답 페이로드
- 해당 권한 소유 여부를 나타내는
Boolean값true: 해당 권한 소유false: 해당 권한 없음
요청 예제
curl -v POST "https://internal-admin-kapi.kakao.com/app/:app_id/permission" \-H "Content-Type: application/json; charset=utf-8" \-H "ADMIN-API-META-RENDER: simple" \-u "${GROUP_NAME}:${GROUP_TOKEN}" \-H "ADMIN-API-USERID: ${USER_INFO}" \-d $'{"name": "HAS_SERVICE_PERMISSION","payload": {"service_type": "KAKAO_TALK"}}'
응답 예제
// HTTP/2 200true
응답 예제: 요청 처리 실패, 잘못된 서비스 타입에 대해 요청한 경우
// HTTP/2 400{"service_type": {"description": "Invalid Enum","message": "${MESSAGE}","args": []}}
앱이 특정 권한을 소유하고 있는지 확인합니다.
요청 시 소유 여부를 확인할 권한의 API의 종류를 api_type 파라미터로 지정해야 합니다. 어드민 API 권한 부여 시 전달받은 값을 사용합니다.
요청 처리 성공 시 응답은 앱의 해당 API 사용 권한 소유 여부를 payload에 포함합니다.
요청 페이로드
| 이름 | 타입 | 설명 | 필수 |
|---|---|---|---|
| api_type | String | API 타입 | O |
| action_type | String[] | API 타입에 해당하는 API의 특정 동작이나 기능을 제어하는 추가 권한의 액션 타입 이름 | X |
응답 페이로드
- 해당 권한 소유 여부를 나타내는
Boolean값true: 해당 권한 소유false: 해당 권한 없음
요청 예제
curl -v POST "https://internal-admin-kapi.kakao.com/app/:app_id/permission" \-H "Content-Type: application/json; charset=utf-8" \-H "ADMIN-API-META-RENDER: simple" \-u "${GROUP_NAME}:${GROUP_TOKEN}" \-H "ADMIN-API-USERID: ${USER_INFO}" \-d $'{"name": "HAS_API_PERMISSION","payload": {"api_type": "MOMENT"}}'
응답 예제
// HTTP/2 200false
응답 예제: 요청 처리 실패, 잘못된 API 타입에 대해 요청한 경우
// HTTP/2 400{"api_type": {"description": "Invalid Enum","message": "${MESSAGE}","args": []}}
응답 예제: 검수가 필요한 API 사용 권한에 대해 요청한 경우
- 검수가 필요한 API를 대상으로 요청할 경우, 이 액션으로는 조회 불가해 응답은
payload에false값을 반환함 - 검수가 필요한 API 사용 권한에 대한 권한 조회는
HAS_REVIEW_API_PERMISSION액션으로 요청할 것
// HTTP/2 200false
앱이 검수가 필요한 특정 API 사용 권한을 소유하고 있는지 확인합니다. 일부 API는 사용자 경험이나 개인정보 보호를 위해 유관 부서의 검수를 거쳐 권한을 부여합니다.
요청 시 소유 여부를 확인할 권한의 API의 종류를 api_type 파라미터로 지정해야 합니다. 어드민 API 권한 부여 시 전달받은 값을 사용합니다.
요청 처리 성공 시 응답은 앱의 해당 권한 소유 여부를 payload에 포함합니다.
검수가 필요한 API 사용 권한의 경우, 연관 권한이 존재할 수 있습니다. 이 액션의 with_origin_type 파라미터로 연관 권한 소유 여부를 확인할 수 있습니다.
| 검수 여부 | 앱의 권한 | 제공 기능 |
|---|---|---|
| 검수 전 | 연관 권한만 제공 | 팀원 대상으로만 메시지 발송 가능 |
| 검수 후 | 검수가 필요한 API 사용 권한 제공 | 팀원을 포함한 전체 앱 사용자에게 메시지 발송 가능 |
이와 같이 여러 권한으로 기능을 순차 제공할 수 있습니다. 이 밖에도 제휴 성격에 따라 여러 권한으로 서비스를 제한해야 할 수 있습니다. 따라서 앱에 검수가 필요한 API 사용 권한이 없더라도 연관 권한은 부여돼 있는지 확인하는 경우가 있습니다. 이때 with_origin_type 파라미터를 사용합니다.
앱의 권한 소유 여부와 with_origin_type 파라미터 사용에 따른 요청 결과는 아래와 같습니다.
| 검수가 필요한 API 사용 권한 소유 여부 | 연관 권한 소유 여부 | with_origin_type파라미터 값 | 응답의 payload 값 |
|---|---|---|---|
| O | O | true | true |
| O | O | false | true |
| O | X | true | false |
| O | X | false | true |
| X | O | true | true |
| X | O | false | false |
// 조회 대상 API 타입에 연관 권한이 존재하고// 앱이 연관 권한을 보유하고 있지 않은 경우// "with_origin_type": true 요청의 응답// HTTP/2 200{"name":"HAS_REVIEW_API_PERMISSION","payload":true}// "with_origin_type": false 요청의 응답// HTTP/2 200{"name":"HAS_REVIEW_API_PERMISSION","payload":false}
요청 페이로드
| 이름 | 타입 | 설명 | 필수 |
|---|---|---|---|
| api_type | String | API 타입 | O |
| with_origin_type | Boolean | 앱이 연관 권한을 소유하고 있는지 확인할 때 사용
참고: 연관 권한 조회 | X |
응답 페이로드
- 해당 권한 소유 여부를 나타내는
Boolean값true: 해당 권한 소유false: 해당 권한 없음
요청 예제
curl -v POST "https://internal-admin-kapi.kakao.com/app/:app_id/permission" \-H "Content-Type: application/json; charset=utf-8" \-H "ADMIN-API-META-RENDER: simple" \-u "${GROUP_NAME}:${GROUP_TOKEN}" \-H "ADMIN-API-USERID: ${USER_INFO}" \-d $'{"name": "HAS_REVIEW_API_PERMISSION","payload": {"api_type": "TALK_MESSAGE_SEND","with_origin_type": true}}'
응답 예제
// HTTP/2 200true
응답 예제: 요청 처리 실패, 검수가 필요하지 않은 API 사용 권한에 대해 요청한 경우
- 검수가 필요한 API가 아닌 API의 권한에 대해 요청한 경우, 조회 불가로 응답은
payload에false값을 반환함 - 검수가 필요한 API 사용 권한이 아닌 경우
HAS_API_PERMISSION액션으로 요청할 것
// HTTP/2 200false
권한 코드로 앱이 특정 권한들을 소유하고 있는지 확인합니다. 이 액션을 사용하면 레벨 타입을 불문하고 코드로 특정 권한들을 지정해 앱의 권한 소유 여부를 확인할 수 있습니다.
요청 시 소유 여부를 확인할 권한 코드의 배열을 code 파라미터로 지정해야 합니다. 어드민 API 권한 부여 시 전달받은 값을 사용합니다.
요청 처리 성공 시 응답은 앱의 해당 권한 소유 여부를 payload에 포함합니다.
요청 페이로드
| 이름 | 타입 | 설명 | 필수 |
|---|---|---|---|
| code | Integer[] | 특정 권한을 가리키는 코드의 목록 (최소: 1) | O |
응답 페이로드
code별 키, 권한 소유 여부를 나타내는Boolean값으로 구성된Map형식의JSONtrue: 해당 권한 소유false: 해당 권한 없음
요청 예제
curl -v POST "https://internal-admin-kapi.kakao.com/app/:app_id/permission" \-H "Content-Type: application/json; charset=utf-8" \-H "ADMIN-API-META-RENDER: simple" \-u "${GROUP_NAME}:${GROUP_TOKEN}" \-H "ADMIN-API-USERID: ${USER_INFO}" \-d $'{"name": "HAS_PERMISSIONS","payload": {"code": [5,7,15,16,17]}}'
응답 예제
// HTTP/2 200{"5": true,"17": false,"7": true,"16": true,"15": true}
권한 코드로 앱이 특정 권한을 소유하고 있는지 확인합니다. 이 액션을 사용하면 레벨 타입을 불문하고 코드로 특정 권한을 지정해 앱의 권한 소유 여부를 확인할 수 있습니다.
요청 시 소유 여부를 확인할 권한 코드를 code 파라미터로 지정해야 합니다. 어드민 API 권한 부여 시 전달받은 값을 사용합니다.
요청 처리 성공 시 응답은 앱의 해당 권한 소유 여부를 payload에 포함합니다.
요청 페이로드
| 이름 | 타입 | 설명 | 필수 |
|---|---|---|---|
| code | Integer | 특정 권한을 가리키는 코드 (최소: 1) | O |
응답 페이로드
- 해당 권한 소유 여부를 나타내는
Boolean값true: 해당 권한 소유false: 해당 권한 없음
요청 예제
curl -v POST "https://internal-admin-kapi.kakao.com/app/:app_id/permission" \-H "Content-Type: application/json; charset=utf-8" \-H "ADMIN-API-META-RENDER: simple" \-u "${GROUP_NAME}:${GROUP_TOKEN}" \-H "ADMIN-API-USERID: ${USER_INFO}" \-d $'{"name": "HAS_PERMISSION","payload": {"code": 5}}'
응답 예제
// HTTP/2 200true
앱에 특정 권한을 부여합니다.
앱은 앱 타입에 따라 특정 권한을 기본적으로 제공받을 수 있습니다. 앱 타입에 기본적으로 제공하지 않는 추가 권한은 별도 부여 받아야 합니다.
카카오 API 플랫폼 연동 시, 추가 권한은 앱의 특정 API 또는 기능 사용을 제한하거나 허용하는 데 사용합니다. 예를 들어, 제휴 계약을 체결한 제휴사에만 추가 권한을 부여해 특정 API나 데이터를 제공받을 수 있도록 할 수 있습니다. (참고: API 제공자를 위한 API 플랫폼 연동 안내)
이 액션은 API 제공자가 API플랫폼을 거치지 않고 직접 제휴처에 권한을 부여할 수 있도록 제공하는 것으로, 각 API 제공자의 서비스에 대한 추가 권한만 부여 가능합니다.
요청 시 앱에 추가할 권한 코드를 code 파라미터로 지정해야 합니다. 어드민 API 권한 부여 시 전달받은 값을 사용합니다.
요청 처리 성공 시 응답은 앱이 소유한 권한의 코드 목록 payload에 포함합니다.
요청 페이로드
| 이름 | 타입 | 설명 | 필수 |
|---|---|---|---|
| code | Integer | 권한 코드 (최소: 1) | O |
응답 페이로드
- 추가 권한 부여 후, 앱이 소유한 권한의 코드 목록
요청 예제
curl -v POST "https://internal-admin-kapi.kakao.com/app/:app_id/permission" \-H "Content-Type: application/json; charset=utf-8" \-H "ADMIN-API-META-RENDER: simple" \-u "${GROUP_NAME}:${GROUP_TOKEN}" \-H "ADMIN-API-USERID: ${USER_INFO}" \-d $'{"name": "ADD","payload": {"code": 150}}'
응답 예제
// HTTP/2 200[150]
앱이 소유한 특정 권한을 회수합니다. 추가 권한 부여와 마찬가지로, 각 API 제공자의 서비스에 대한 추가 권한만 회수 가능합니다.
요청 시 앱에서 제거할 권한 코드를 code 파라미터로 지정해야 합니다. 어드민 API 권한 부여 시 전달받은 값을 사용합니다.
요청 처리 성공 시 응답은 앱이 소유한 권한의 코드 목록 payload에 포함합니다.
요청 페이로드
| 이름 | 타입 | 설명 | 필수 |
|---|---|---|---|
| code | Integer | 권한 코드 (최소: 1) | O |
응답 페이로드
- 권한 회수 후, 앱이 소유한 권한의 코드 목록
요청 예제
curl -v POST "https://internal-admin-kapi.kakao.com/app/:app_id/permission" \-H "Content-Type: application/json; charset=utf-8" \-H "ADMIN-API-META-RENDER: simple" \-u "${GROUP_NAME}:${GROUP_TOKEN}" \-H "ADMIN-API-USERID: ${USER_INFO}" \-d $'{"name": "REMOVE","payload": {"code": 150}}'
응답 예제
// HTTP/2 200[]