•  


Add file for coming-soon Java quickstart guide. · youtube/api-samples@b9e6a9a · GitHub
Skip to content

Commit

Permalink
Add file for coming-soon Java quickstart guide.
Browse files Browse the repository at this point in the history
  • Loading branch information
AndyDiamondstein committed Apr 25, 2017
1 parent f66c00a commit b9e6a9a
Showing 1 changed file with 119 additions and 0 deletions .
@@ -0,0 +1,119 @@
import com . google . api . client . auth . oauth2 . Credential ;
import com . google . api . client . extensions . java6 . auth . oauth2 . AuthorizationCodeInstalledApp ;
import com . google . api . client . extensions . jetty . auth . oauth2 . LocalServerReceiver ;
import com . google . api . client . googleapis . auth . oauth2 . GoogleAuthorizationCodeFlow ;
import com . google . api . client . googleapis . auth . oauth2 . GoogleClientSecrets ;
import com . google . api . client . googleapis . javanet . GoogleNetHttpTransport ;
import com . google . api . client . googleapis . json . GoogleJsonResponseException ;
import com . google . api . client . http . HttpTransport ;
import com . google . api . client . json . jackson2 . JacksonFactory ;
import com . google . api . client . json . JsonFactory ;
import com . google . api . client . util . store . FileDataStoreFactory ;

import com . google . api . services . youtube . YouTubeScopes ;
import com . google . api . services . youtube . model .*;
import com . google . api . services . youtube . YouTube ;

import java . io . IOException ;
import java . io . InputStream ;
import java . io . InputStreamReader ;
import java . util . Arrays ;
import java . util . List ;


public class Quickstart {

/** Application name. */
private static final String APPLICATION_NAME = "API Sample" ;

/** Directory to store user credentials for this application. */
private static final java . io . File DATA_STORE_DIR = new java . io . File (
System . getProperty ( "user.home" ), ".credentials/youtube-java-quickstart" );

/** Global instance of the {@link FileDataStoreFactory}. */
private static FileDataStoreFactory DATA_STORE_FACTORY ;

/** Global instance of the JSON factory. */
private static final JsonFactory JSON_FACTORY =
JacksonFactory . getDefaultInstance ();

/** Global instance of the HTTP transport. */
private static HttpTransport HTTP_TRANSPORT ;

/** Global instance of the scopes required by this quickstart.
*
* If modifying these scopes, delete your previously saved credentials
* at ~/.credentials/drive-java-quickstart
*/
private static final List < String > SCOPES =
Arrays . asList ( YouTubeScopes . YOUTUBE_READONLY );

static {
try {
HTTP_TRANSPORT = GoogleNetHttpTransport . newTrustedTransport ();
DATA_STORE_FACTORY = new FileDataStoreFactory ( DATA_STORE_DIR );
} catch ( Throwable t ) {
t . printStackTrace ();
System . exit ( 1 );
}
}

/**
* Create an authorized Credential object.
* @return an authorized Credential object.
* @throws IOException
*/
public static Credential authorize () throws IOException {
// Load client secrets.
InputStream in =
Quickstart . class . getResourceAsStream ( "/client_secret.json" );
GoogleClientSecrets clientSecrets =
GoogleClientSecrets . load ( JSON_FACTORY , new InputStreamReader ( in ));

// Build flow and trigger user authorization request.
GoogleAuthorizationCodeFlow flow =
new GoogleAuthorizationCodeFlow . Builder (
HTTP_TRANSPORT , JSON_FACTORY , clientSecrets , SCOPES )
. setDataStoreFactory ( DATA_STORE_FACTORY )
. setAccessType ( "offline" )
. build ();
Credential credential = new AuthorizationCodeInstalledApp (
flow , new LocalServerReceiver ()). authorize ( "user" );
return credential ;
}

/**
* Build and return an authorized API client service, such as a YouTube
* Data API client service.
* @return an authorized API client service
* @throws IOException
*/
public static YouTube getYouTubeService () throws IOException {
Credential credential = authorize ();
return new YouTube . Builder ( HTTP_TRANSPORT , JSON_FACTORY , credential )
. setApplicationName ( APPLICATION_NAME )
. build ();
}

public static void main ( String [] args ) throws IOException {
YouTube youtube = getYouTubeService ();
try {
YouTube . Channels . List channelsListByUsernameRequest = youtube . channels (). list ( "snippet,contentDetails,statistics" );
channelsListByUsernameRequest . setForUsername ( "GoogleDevelopers" );

ChannelListResponse response = channelsListByUsernameRequest . execute ();
Channel channel = response . getItems (). get ( 0 );
System . out . printf (
"This channel's ID is %s. Its title is '%s', and it has %s views. \n " ,
channel . getId (),
channel . getSnippet (). getTitle (),
channel . getStatistics (). getViewCount ());
} catch ( GoogleJsonResponseException e ) {
e . printStackTrace ();
System . err . println ( "There was a service error: " +
e . getDetails (). getCode () + " : " + e . getDetails (). getMessage ());
} catch ( Throwable t ) {
t . printStackTrace ();
}
}
}

0 comments on commit b9e6a9a

Please sign in to comment.
- "漢字路" 한글한자자동변환 서비스는 교육부 고전문헌국역지원사업의 지원으로 구축되었습니다.
- "漢字路" 한글한자자동변환 서비스는 전통문화연구회 "울산대학교한국어처리연구실 옥철영(IT융합전공)교수팀"에서 개발한 한글한자자동변환기를 바탕하여 지속적으로 공동 연구 개발하고 있는 서비스입니다.
- 현재 고유명사(인명, 지명등)을 비롯한 여러 변환오류가 있으며 이를 해결하고자 많은 연구 개발을 진행하고자 하고 있습니다. 이를 인지하시고 다른 곳에서 인용시 한자 변환 결과를 한번 더 검토하시고 사용해 주시기 바랍니다.
- 변환오류 및 건의,문의사항은 juntong@juntong.or.kr로 메일로 보내주시면 감사하겠습니다. .
Copyright ⓒ 2020 By '전통문화연구회(傳統文化硏究會)' All Rights reserved.
 한국   대만   중국   일본