curl --request GET 'https://api.voicecheap.ai/.well-known/oauth-authorization-server'
const input = {};
const response = await fetch('https://api.voicecheap.ai/.well-known/oauth-authorization-server', {
method: 'GET',
headers: {},
redirect: 'manual',
});
console.log(response.status, await response.text());
import os
import requests
response = requests.request(
"GET",
"https://api.voicecheap.ai/.well-known/oauth-authorization-server",
headers={},
timeout=120,
allow_redirects=False,
)
print(response.status_code, response.text)
OAuth 및 MCP 프로토콜
인가 서버 메타데이터 조회
이 환경에서 지원하는 공개 OAuth 엔드포인트와 인증 코드, PKCE, 새로 고침 및 해지 방식을 확인합니다.
GET
/
.well-known
/
oauth-authorization-server
curl --request GET 'https://api.voicecheap.ai/.well-known/oauth-authorization-server'
const input = {};
const response = await fetch('https://api.voicecheap.ai/.well-known/oauth-authorization-server', {
method: 'GET',
headers: {},
redirect: 'manual',
});
console.log(response.status, await response.text());
import os
import requests
response = requests.request(
"GET",
"https://api.voicecheap.ai/.well-known/oauth-authorization-server",
headers={},
timeout=120,
allow_redirects=False,
)
print(response.status_code, response.text)
이 환경에서 지원하는 공개 OAuth 엔드포인트와 인증 코드, PKCE, 새로 고침 및 해지 방식을 확인합니다.
GET https://api.voicecheap.ai/.well-known/oauth-authorization-server
인증
없습니다.요청 예제
이 경로에 명시된 인코딩 및 인증 방식을 따르세요. 액션 API의 응답 구조와 멱등성 규칙은 액션 호출에만 적용됩니다.curl --request GET 'https://api.voicecheap.ai/.well-known/oauth-authorization-server'
const input = {};
const response = await fetch('https://api.voicecheap.ai/.well-known/oauth-authorization-server', {
method: 'GET',
headers: {},
redirect: 'manual',
});
console.log(response.status, await response.text());
import os
import requests
response = requests.request(
"GET",
"https://api.voicecheap.ai/.well-known/oauth-authorization-server",
headers={},
timeout=120,
allow_redirects=False,
)
print(response.status_code, response.text)
응답
정규 발급자 오리진의 절대 엔드포인트 URL을 포함한 OAuth 인증 서버 메타데이터입니다.HTTP 200
{
"issuer": "https://api.voicecheap.ai",
"authorization_endpoint": "https://api.voicecheap.ai/oauth/authorize",
"token_endpoint": "https://api.voicecheap.ai/oauth/token",
"registration_endpoint": "https://api.voicecheap.ai/oauth/register",
"revocation_endpoint": "https://api.voicecheap.ai/oauth/revoke",
"response_types_supported": ["code"],
"response_modes_supported": ["query"],
"grant_types_supported": ["authorization_code", "refresh_token"],
"token_endpoint_auth_methods_supported": ["none"],
"revocation_endpoint_auth_methods_supported": ["none"],
"code_challenge_methods_supported": ["S256"],
"scopes_supported": [
"account:read",
"usage:read",
"settings:read",
"settings:write",
"team:read",
"team:write",
"projects:read",
"projects:write",
"projects:delete",
"translations:write",
"transcription:read",
"transcription:write",
"subtitles:read",
"subtitles:write",
"tts:read",
"tts:write",
"voices:read",
"voices:write",
"images:read",
"images:write",
"thumbnails:read",
"thumbnails:write",
"folders:read",
"folders:write",
"glossary:read",
"glossary:write",
"webhooks:read",
"webhooks:write",
"publishing:read",
"publishing:write",
"offline_access"
],
"authorization_response_iss_parameter_supported": true,
"client_id_metadata_document_supported": true
}
작업 참고 사항
- 응답 유형은 code만, 응답 모드는 query만 지원 대상으로 알립니다.
- 클라이언트는 동적 등록 또는 Client ID Metadata Document(CIMD)를 사용할 수 있습니다. client_id_metadata_document_supported는 true입니다. CIMD 클라이언트는 문서의 공개 HTTPS URL을 client_id로 사용합니다.
- CIMD JSON 문서에는 정확히 일치하는 client_id, 비어 있지 않은 최대 120자의 client_name, 정확한 redirect_uris 1~10개가 필요합니다. 공개 클라이언트 인증 none과 S256 PKCE를 사용하세요. authorization_code는 필수이고 refresh_token은 선택 사항입니다.
- CIMD는 명시적 경로가 있는 포트 443의 공개 HTTPS에서 압축되지 않은 JSON으로 제공하세요. 자격 증명, 프래그먼트, 점 경로 세그먼트, 리디렉션은 허용되지 않습니다. 문서는 최대 64 KiB이며 5초 이내에 응답해야 합니다. 캐시된 메타데이터는 최대 5분 후 만료됩니다. 토큰 교환과 갱신은 권한 부여에 연결된 메타데이터를 사용합니다.
- OpenID Connect를 사용할 수 있으면 권한 서버 메타데이터에 openid 및 email 범위, userinfo_endpoint, jwks_uri도 표시됩니다. 사용할 수 없으면 이 범위와 엔드포인트는 메타데이터에 포함되지 않습니다.
- 토큰 및 해지 인증 방식은 none입니다. 공개 클라이언트는 클라이언트 비밀 키 대신 client_id와 S256 PKCE를 사용합니다.
- offline_access는 제품 권한이 아니라 갱신과 관련된 범위 표시자입니다. 갱신 토큰 발급 여부는 refresh_token이 부여 유형으로 등록되었는지에 따라 달라집니다.
- 최종 클라이언트 콜백에서 반환된 iss 값이 issuer와 일치하는지 확인하세요. 인증에 성공한 콜백과 거부된 콜백 모두 iss를 포함하며, state가 전달되었으면 그대로 반환합니다.
오류
| HTTP 상태 | 코드 | 의미 또는 복구 방법 |
|---|---|---|
| 429 | temporarily_unavailable | 공개 OAuth 요청 속도 제한에 도달했습니다. 현재 제한 시간 구간이 끝날 때까지 기다린 후 다시 시도하세요. |
| 500 | server_error | 일시적으로 권한 부여를 사용할 수 없습니다. 나중에 다시 시도하세요. |
이 페이지가 도움이 되었나요?

