아래의 코드 샘플은 JavaScript용 Google API 클라이언트 라이브러리를 사용합니다. 이 샘플은 GitHub의 YouTube API 코드 샘플 저장소의 javascript
폴더에서 다운로드할 수 있습니다.
이 코드는 https://www.googleapis.com/auth/yt-analytics.readonly
범위에 액세스할 수 있는 사용자 권한을 요청합니다.
return gapi.auth2.getAuthInstance() .signIn({scope: "https://www.googleapis.com/auth/yt-analytics.readonly"}) ...
애플리케이션에서 다른 범위에 대한 액세스를 요청해야 할 수도 있습니다. 예를 들어 YouTube Analytics API 및 YouTube Data API를 호출하는 애플리케이션은 사용자에게 YouTube 계정에 대한 액세스 권한도 부여해야 할 수 있습니다. 승인 개요에서는 YouTube Analytics API를 호출하는 애플리케이션에서 일반적으로 사용되는 범위를 식별합니다.
일일 채널 통계 검색
이 예에서는 YouTube Analytics API를 호출하여 2017년을 승인하는 사용자의 채널에 대한 일일 조회수 및 기타 측정항목을 검색합니다. 이 샘플은 Google API 자바스크립트 클라이언트 라이브러리를 사용합니다.
승인 사용자 인증 정보 설정
이 샘플을 처음으로 로컬에서 실행하기 전에 프로젝트에 대한 승인 사용자 인증 정보를 설정해야 합니다.
- Google API 콘솔에서 프로젝트를 만들거나 선택합니다.
- 프로젝트에 YouTube Analytics API를 사용 설정합니다.
- 사용자 인증 정보 페이지 상단에서 OAuth 동의 화면 탭을 선택합니다. 이메일 주소를 선택하고 아직 설정하지 않은 경우 제품 이름을 입력한 다음 저장 버튼을 클릭합니다.
- 사용자 인증 정보 페이지에서 사용자 인증 정보 만들기 버튼을 클릭하고 Oauth 클라이언트 ID를 선택합니다.
- 애플리케이션 유형 웹 애플리케이션을 선택합니다.
- 승인된 자바스크립트 원본 필드에 코드 샘플을 제공할 URL을 입력합니다. 예를 들어
http://localhost:8000
또는http://yourserver.example.com
와 같은 이름을 사용할 수 있습니다. 승인된 리디렉션 URI 필드는 비워두어도 됩니다. - 만들기 버튼을 클릭하여 사용자 인증 정보 만들기를 마칩니다.
- 대화상자를 닫기 전에 코드 샘플에 입력해야 하는 클라이언트 ID를 복사합니다.
샘플의 로컬 사본 만들기
그런 다음 샘플을 로컬 파일에 저장합니다. 샘플에서 다음 줄을 찾아 YOUR_CLIENT_ID를 승인 사용자 인증 정보를 설정할 때 얻은 클라이언트 ID로 바꿉니다.
gapi.auth2.init({client_id: 'YOUR_CLIENT_ID'});
코드 실행
이제 샘플을 실제로 테스트할 준비가 되었습니다.
- 웹브라우저에서 로컬 파일을 열고 브라우저에서 디버깅 콘솔을 엽니다. 버튼 두 개가 표시된 페이지가 표시됩니다.
- 승인 및 로드 버튼을 클릭하여 사용자 승인 흐름을 시작합니다. 앱이 채널 데이터를 검색하도록 승인하면 브라우저의 콘솔에 다음 줄이 출력됩니다.
Sign-in successful GAPI client loaded for API
- 위 행 대신 오류 메시지가 표시되면 프로젝트에 설정한 승인된 리디렉션 URI에서 스크립트를 로드하고 있고 위에 설명된 대로 클라이언트 ID를 코드에 삽입했는지 확인합니다.
- 실행 버튼을 클릭하여 API를 호출합니다.
response
객체가 브라우저의 콘솔에 출력됩니다. 이 객체에서result
속성은 API 데이터가 포함된 객체에 매핑됩니다.
샘플 코드
<script src="https://apis.google.com/js/api.js"></script> <script> function authenticate() { return gapi.auth2.getAuthInstance() .signIn({scope: "https://www.googleapis.com/auth/yt-analytics.readonly"}) .then(function() { console.log("Sign-in successful"); }, function(err) { console.error("Error signing in", err); }); } function loadClient() { return gapi.client.load("https://youtubeanalytics.googleapis.com/$discovery/rest?version=v2") .then(function() { console.log("GAPI client loaded for API"); }, function(err) { console.error("Error loading GAPI client for API", err); }); } // Make sure the client is loaded and sign-in is complete before calling this method. function execute() { return gapi.client.youtubeAnalytics.reports.query({ "ids": "channel==MINE", "startDate": "2017-01-01", "endDate": "2017-12-31", "metrics": "views,estimatedMinutesWatched,averageViewDuration,averageViewPercentage,subscribersGained", "dimensions": "day", "sort": "day" }) .then(function(response) { // Handle the results here (response.result has the parsed body). console.log("Response", response); }, function(err) { console.error("Execute error", err); }); } gapi.load("client:auth2", function() { gapi.auth2.init({client_id: 'YOUR_CLIENT_ID'}); }); </script> <button onclick="authenticate().then(loadClient)">authorize and load</button> <button onclick="execute()">execute</button>