질문
내 계정에 설치된 사용자 지정 앱에서 다른 계정의 API로 API 요청을 할 때오류는 프록시 가능한 URI가 아닙니다. 메시지를 받지 않으려면 어떻게 해야 하나요?
답변
의 기본 동작 client.request한 계정에서 다른 계정으로 보내는 HTTP 요청을 차단하는 게이트웨이인 Zendesk의 프록시 계층을 통해 요청을 보내는 것이므로403은 프록시 가능 URI 응답이 아닙니다.
계정의 사용자 지정 앱에서 다른 Zendesk 인스턴스의 API에 대한client.request를만들려면 다음을 전달하세요. cors: true요청 옵션 개체에 있습니다. 이렇게 하면 요청이 Zendesk의 프록시 계층을 우회할 수 있습니다.
// make a request from a custom app in one Zendesk to the API of another Zendesk
function newRequest(){
var options = {
url: 'https://subdomain.zendesk.com/api/v2/....',
headers: { "Authorization": "Bearer OAUTH_TOKEN"},
type: 'POST',
data: JSON.stringify({my:"json", values:"go here"}),
contentType: "application/json",
cors: true
}
client.request(options).then(
function(response) {
console.log(response);
});
}
클라이언트 측 요청과 서버 측 요청에 대한 참고 사항
각 Zendesk API 엔드포인트는 교차 출처 리소스 공유(CORS)를 구현합니다. 앱의 요청이 클라이언트 측에서 시작된 경우에는OAuth 사용하지 않는 한 CORS 응답이 실패합니다. GET 방법만 필요한 경우에는 특정 리소스에 대한 읽기 전용 액세스에 대한 OAuth 토큰 범위를 지정하고 클라이언트 측에서 이를 구현하세요.
다른 Zendesk API에 대한 앱의 요청이 PUT 또는 POST 방법으로 데이터를 쓰는 것이라면 두 옵션 모두 네트워크 트래픽에 토큰을 노출하므로 안전하지 않습니다. 대부분의 워크플로우에서보안 설정을사용하여 토큰의 보안 문제를 방지할 수 있습니다.
보안 설정은 요청이 Zendesk의 프록시 계층을 통과해야 하므로 이 워크플로우에서 작동하지 않습니다. 앱에서 데이터를 작성해야 하는 경우에는 다른 Zendesk의 API에 대한 요청을 앱으로 다시 보내 서버 측에서 처리하는 서버 측 솔루션을 고려하세요.
번역 고지 사항: 본 문서는 콘텐츠에 대한 기본적인 이해를 제공하기 위해 자동 번역 소프트웨어를 사용하여 번역되었습니다. 정확한 번역을 제공하고자 합당한 노력을 기울였으나 Zendesk는 번역의 정확성을 보장하지 않습니다.
번역된 문서에 포함된 정보의 정확성과 관련하여 질문이 있으시면 문서의 공식 버전인 영문 버전을 참조하시기 바랍니다.