SKYMENU Cloud Devicecontrol Edition은 스포츠 토토 Drive API를 사용합니다이번에는 스포츠 토토 Drive API를 사용하여 스포츠 토토 Drive의 파일과 폴더를 조작하는 방법을 소개하겠습니다
요약
스포츠 토토 드라이브 API는 클라이언트에서 스포츠 토토 드라이브를 작동하기 위한 API 그룹입니다파일 업로드, 다운로드, 검색, 공유, 복사 및 삭제와 같은 작업을 프로그래밍 방식으로 수행할 수 있습니다또한 파일 및 폴더에 첨부된 메타데이터 업데이트를 지원합니다
사용 방법
샘플로 스포츠 토토 Drive API를 사용하여 스포츠 토토 Drive에 존재하는 파일을 복사하는 예를 보여드리겠습니다스포츠 토토의 공식 Nodejs 클라이언트 라이브러리(googleapis)를 사용하는 방법과 이를 가져오기로 호출하는 방법을 보여 드리겠습니다*스포츠 토토 Drive API를 사용할 수 있도록 프로젝트가 생성된 것으로 가정합니다※자바스크립트
[클라이언트 라이브러리(googleapis)를 사용하는 경우]
const구글요구('googleapis');// 스포츠 토토 API 라이브러리
const{OAuth2인증;// 인증정보 획득 함수
비동기 함수 getAuth() {constoAuth2Client =신규 OAuth2(
'YOUR_CLIENT_ID', // 클라이언트 ID
'당신의_CLIENT_SECRET', // 클라이언트 비밀번호
'YOUR_REDIRECT_URL' // URL 리디렉션);// 토큰 설정oAuth2ClientsetCredentials({refresh_token:'YOUR_REFRESH_TOKEN'});반환oAuth2Client;//파일 복사 기능
비동기 함수 복사파일() {// 인증 정보 획득
const인증 =기다려요 getAuth();// 스포츠 토토 드라이브 API 호출
constdriveService = 구글드라이브({버전:'v3', 인증시도해 보세요{const파일 ID ='YOUR_FILE_ID';// 복사하려는 파일의 ID
const응답 =기다려요드라이브서비스파일.복사({파일ID: 파일 ID,요청본문: {이름:'YOUR_FILE_NAME' //복사 후 파일 이름
}
});
콘솔.로그('복사됨:', 응답합니다데이터);// 성공 메시지 출력 및 복사된 파일 데이터}잡기(오류)콘솔.오류('복사 실패:', 오류);// 오류 메시지 출력}
}
[가져오기로 호출할 때]
// 인증정보 획득 함수
비동기 함수 getAuthToken() {constoAuth2Client =신규 OAuth2(
'YOUR_CLIENT_ID', // 클라이언트 ID
'당신의_CLIENT_SECRET', // 클라이언트 비밀번호
'YOUR_REDIRECT_URL' // URL 리디렉션);// 토큰 설정oAuth2ClientsetCredentials({refresh_token:'YOUR_REFRESH_TOKEN'});const토큰 =기다려요oAuth2ClientgetAccessToken();반환토큰토큰;
}//파일 복사 기능
비동기 함수 copyFileWithFetch() {constauthToken =기다려요 getAuthToken();consturl =`https://wwwgoogleapiscom/drive/v3/files/YOUR_FILE_ID/copy`;// YOUR_FILE_ID:복사하려는 파일의 파일 ID
const요청 본문 =이름:'YOUR_FILE_NAME' //복사 후 파일 이름};시도{const응답 =기다려요 가져오기(URL,방법:'포스트',
헤더: {'승인':`전달자$authToken`, // 헤더에 인증 토큰 추가
'콘텐츠 유형':'응용 프로그램/json'},몸:JSON.문자열화(요청 본문)// JSON 형식으로 요청 본문 보내기});if(!응답확인) {던지기 신규 오류('복사 실패');
}
const데이터 =기다려요응답JSON();콘솔.로그('복사됨:', 데이터);// 성공 메시지 출력 및 복사된 파일 데이터}잡기(오류)콘솔.오류('복사 실패:', 오류);// 오류 메시지 출력}
}
이런 방식으로 가져오기로 호출하는 것보다 클라이언트 라이브러리(googleapis)를 사용하여 구현하는 것이 더 쉽습니다
반면, 동일한 유형의 스포츠 토토를 여러 번 실행해야 하는 경우 "일괄 요청을 사용하면 스포츠 토토를 하나씩 실행하는 것에 비해 HTTP 통신 횟수가 줄어들고 스포츠 토토별 오버헤드도 제거됩니다성능 향상가능합니다아래에서는 일괄요청 사용방법을 소개하겠습니다
일괄 요청 정보
일괄 요청은 여러 스포츠 토토를 하나의 요청으로 보낼 수 있습니다

단, 다음 사항에 유의하시기 바랍니다
1 요청 수 제한
일괄 요청에는 한 번에 보낼 수 있는 요청 수에 제한이 있습니다최대 100개 요청100개 이상의 요청을 보내려면 여러 개의 일괄 요청을 실행해야 합니다
2 실행 결과 확인
결합된 요청의 실행 결과는 일괄 요청 응답에 포함됩니다각 실행 결과를 확인하고 실패한 요청을 다시 시도하는 등의 오류를 적절하게 처리해야 합니다 일괄 요청 자체의 실행 결과가 성공하더라도 각 요청 일괄 처리가 반드시 성공한다는 의미는 아닙니다
3 일괄 요청으로 그룹화된 요청의 실행 순서는 보장되지 않습니다
예를 들어 폴더를 생성한 후 해당 폴더에 파일을 생성하려는 경우 순서가 바뀌면 오류가 발생합니다 처리 순서가 필요한 경우에는 사용하면 안 됩니다
4 스포츠 토토 실행 제한에 주의하세요
스포츠 토토 Drive API에는 특정 기간 동안 API 실행 횟수에 제한이 있습니다 일괄 요청으로 결합된 스포츠 토토도 스포츠 토토 실행으로 계산됩니다한도를 초과하지 않도록 주의해야 합니다
다음은 일괄 요청을 사용하여 여러 번 복사하는 샘플 코드입니다이전 단계와 마찬가지로 클라이언트 라이브러리(googleapis)를 사용하는 방법과 가져오기로 호출하는 방법을 보여드리겠습니다
[클라이언트 라이브러리(googleapis)를 사용하는 경우]
const구글요구('googleapis');// 스포츠 토토 API 라이브러리
const{OAuth2인증;// 인증정보 획득 함수
비동기 함수 getAuth() {constoAuth2Client =신규 OAuth2(
'YOUR_CLIENT_ID', // 클라이언트 ID
'당신의_CLIENT_SECRET', // 클라이언트 비밀번호
'YOUR_REDIRECT_URL' // URL 리디렉션);// 토큰 설정oAuth2ClientsetCredentials({refresh_token:'YOUR_REFRESH_TOKEN'});반환oAuth2Client;// 일괄 요청으로 복사하는 함수
비동기 함수 batchCopyFiles() {const인증 =기다려요 getAuth();constdriveService = 구글드라이브({버전:'v3', 인증const배치 =신규구글일괄 요청();constfileIds = ['YOUR_FILE_ID1', 'YOUR_FILE_ID2'];// 복사하려는 파일의 ID 목록파일 ID각각(파일ID=>추가(드라이브서비스파일.복사({파일 ID: 파일 ID,요청 본문: {이름:`YOUR_FILE_NAME_$fileId` //복사 후 파일 이름
}
}));
});
시도해 보세요{const응답 =기다려요일괄실행();if( 응답상태===200) {콘솔.로그('일괄 요청이 성공했습니다');// 일괄 요청 성공 메시지 출력
//각 스포츠 토토 실행 결과 확인응답forEach((res, 인덱스) =>{if(res상태===200) {콘솔.로그(`스포츠 토토$색인 +1}성공:`, 해상도데이터);// 각 스포츠 토토에 대한 성공 메시지 출력}그밖에{콘솔.오류(`스포츠 토토$색인 +1}실패:`, resstatusText);// 각 스포츠 토토에 대한 오류 메시지 출력
}
});
} 그밖에{콘솔.오류('일괄 요청 실패');// 일괄 요청 오류 메시지 출력}
}잡기(오류)콘솔.오류('일괄 요청 실패:', 오류);// 일괄 요청 오류 메시지 출력}
}
[가져오기로 호출할 때]
// 인증정보 획득 함수
비동기 함수 getAuthToken() {constoAuth2Client =신규 OAuth2(
'YOUR_CLIENT_ID', // 클라이언트 ID
'당신의_CLIENT_SECRET', // 클라이언트 비밀번호
'YOUR_REDIRECT_URL' // URL 리디렉션);// 토큰 설정oAuth2ClientsetCredentials({refresh_token:'YOUR_REFRESH_TOKEN'});const토큰 =기다려요oAuth2ClientgetAccessToken();반환토큰토큰;
}// 일괄 요청으로 복사하는 함수
비동기 함수 batchCopyFilesWithFetch(파일 ID) {constauthToken =기다려요 getAuthToken();consturl ='https://wwwgoogleapiscom/batch/drive/v3';const경계 ='배치_경계';렛본체 ='';forEach(파일ID=>`--$경계\n`;'콘텐츠 유형: 애플리케이션/http\n\n';`POST /drive/v3/files/$fileId/복사\n`;'콘텐츠 유형: 애플리케이션/json\n\n';JSON.문자열화({이름:`YOUR_FILE_NAME_$fileId`}) +'\n\n';`--$경계--`;// 각 스포츠 토토 요청에 대한 구분 기호
시도해 보세요{const응답 =기다려요 가져오기(URL,방법:'포스트',
헤더: {'인증':`전달자$authToken`, // 헤더에 인증 토큰 추가
'콘텐츠 유형':`다중 부분/혼합; 경계=$경계`},몸: 본문// 일괄 요청 본문 보내기});if(!응답확인) {던지기 신규 오류('일괄 요청 실행 실패');
} 그밖에{콘솔.로그('일괄 요청이 성공적으로 실행되었습니다');// 일괄 요청 성공 메시지 출력}const데이터 =기다려요응답텍스트();// 각 스포츠 토토의 실행 결과 확인
const부분 = 데이터분할(`--$경계`);forEach((부분, 색인) =>{if(부분포함('HTTP/11 200 확인')) {콘솔.로그(`스포츠 토토$색인 +1}성공:`, 부분);// 각 스포츠 토토에 대한 성공 메시지 출력}그밖에 if(부분포함('HTTP/11')) {콘솔.오류(`스포츠 토토$색인 +1}실패:`, 부분);// 각 스포츠 토토에 대한 오류 메시지 출력
}
});
} 잡기(오류)콘솔.오류('일괄 요청 실행 실패:', 오류);// 일괄 요청 오류 메시지 출력}
}
가져오기를 사용하여 일괄 요청을 보낼 때 본문을 채울 때 각 스포츠 토토에 대한 경계를 설정해야 합니다클라이언트 라이브러리(googleapis)를 사용하는 경우 경계는 라이브러리 측에서 처리되므로 구현이 더 쉬워집니다
요약
스포츠 토토 Drive API 사용법을 설명했습니다일괄 요청은 동일한 작업을 여러 번 수행해야 하는 경우 성능을 향상시킬 수 있습니다단, 위에서 언급한 몇 가지 주의사항이 있으니 사용시 주의하시기 바랍니다

