본문 바로가기

IT/iOS

[iOS] Google YouTube API 이용하기 (설치, 적용, 테스트)

국내는 YouTube API 자료가 없다. 있어도 예전자료밖에 ㅠㅠ

그래서 그냥 내가 만든다.


개발환경은 다음과 같다. 

OS X 10.9.2

Xcode 5.1.1

iOS SDK 7.1


1. Google Developer Console로 프로젝트 생성 및 API설정

이곳 으로 이동해서 새로운 프로젝트를 생성하자 (구글 로그인이 필요하다)


운데 상단의 CREATE PROJECT 버튼 클릭





Project name과 Project ID입력후 Create버튼 클릭


시간이 조금 경과 되면


이런 화면이 뜬다 그 후 왼쪽 메뉴중 APIs & auth 메뉴 클릭



스크롤을 쭈욱 내리면 맨밑에 YouTube Data API가 있다. 오른쪽 OFF버튼을 눌러 ON으로 하자 




그럼 위사진처럼 상단에 YouTube Data API v3의 상태가 ON으로 바뀌었다.  

다음은 OAuth키를 생성해보자



2. OAuth키 생성

1.번의 맨마지막사진에 APIs & auth -> Credentials를 눌러보자


그러면 위의 화면이 뜨는데 중간빨간버튼의 CREATE NEW CLIENT ID 버튼을 눌러보 자



그럼 위와 같은 화면이 뜨는데 

Application type을 Installed Application으로 선택 하자 그럼 Installed application type 이라는 추가 선택창이 나온다 여기서 

Installed application type 을 iOS로 

Bundle ID 입력에는 자신이 XCode로 만든 프로젝트의 번들 네임을 적어주면된다. (예:com.test.bundle) (안만드셨으면 생성합시다)

App store ID는 선택 사항이다.

나머진 가만히 두고 Create Client ID버튼을 누르면 





위의 사진처럼 Client ID가 생성이 된다. 이걸 기억 기억하고 있자


3. Google API다운

여기를 클릭하여 Google Developers YouTube에 접속하자



왼쪽 메뉴들중에서 YouTube Data API -> Version 3.0 -> Getting Started -> Client Libraries 순으로 클릭하자




위의 사진결과가 나오는데 그중 우리가 원하는 Objective-C 항목을 클릭하자 google-api-objectivec-client/ 탭이다.




위의 사진에서 상단 세로 탭중 Source탭을 클릭하자 그럼 주소가 나올것이다 이것을 복사하자




여기서 아래 svn으로 시작하는 부분부터 끝가지...

그리고 터미널을 열자



(Alfred 앱을 이용하면 훨신 편하게 열수 있어요)

터미널을 연 후 저장을 원하는 경로로 이동하여 아까 복사한 주소를 집어 넣자

svn checkout http://google-api-objectivec-client.googlecode.com/svn/trunk/ google-api-objectivec-client-read-only


완료가 되었다 이제 프로젝트에 적용해보자



4. Google API 프로젝트 적용

Xcode로 프로젝트를 열자(없으면 아까 위의 번들아이디와 같은 프로젝트를 생성해주면 됩니다.)

파인더로 아까 Checkout했던 Google API 경로로 이동하자


Source 폴더 안에 GLT.xcodeproj 파일을 자신의 프로젝트로 Import시키자 그러면 

이렇게 자신의 프로젝트 안에 들어간다 여기서 자신의 프로젝트를 클릭하고 Build Phases탭으로 이동하자

그후 Targer Dependencies (0 items) 탭을 열고 +버튼을 클릭하자


그러면 위와 같은 화면이 나오는데 여기서 GTLTouchStaticLib를 Add하자 

그리고 나서 아래로 Link binary With Libraries 탭을 열어 +버튼을 누르고 다음을 추가해 주 자

libGTLTouchStaticLib.a

Security.framework

SystemConfiguration.framework



결과 화면이다 Libraries 에서 libGTLTouchStaticLib.a가 빨간색이 떳다고 당황하지 말자


다음은 Build Settings탭으로 가자

그곳에서 Other Linker Flags에  -ObjC , -all_load 를 입력하자


자! 이제 빌드를 해보자 Run말고 Build다!

빌드에 성공을 했으면 ⌘(command)+shift+2  을 눌러 Organizer를 열자

그리고 2번째 탭인 Projects로 이동하여 자신이 방금 Build한 프로젝트를 선택하자

선택한 Project에 Derived Data라는 글과 경로가 주르륵 써져있는곳이 있다 그리고 그 끝에는 화살표 방향 버튼이 있다 그 경로로 파인더를 열겠다는 의미다 눌러보자!

그러면 선택 되는 폴더가 있는 파인더가 열리게 된다. 그 선택된 폴더에 들어가보자

그리고 Build -> Products -> Debug-iphonesimulator 순으로 들어가보자.


Headers폴더가 있다 들어가보면 알겠지만 구글 API헤더파일들이다. 이 것을 폴더통체로 자신의 프로젝트에 Import하자.


다음은 아까 체크아웃했던 Google API폴더로 이동해보자

폴더안에서 Source -> Services -> YouTube -> Generated 순으로 이동하자



많은 .h파일과.m파일이 있다. 이걸 전부 선택하여...가 아닌 저 사진에 보이는 GTLYouTube_Sources.m 파일은 빼고 나머지전부를 선택하여 자신의 프로젝트에 넣어주자 GTLYouTube_Sources.m파일은 이미 프로젝트 안에 들어가있다.


여기까지 해보고 다시 Build를 해보자 이상 없이 잘 Build가 된다면 import성공이다



5. 예제 테스트

import에 성공했으면 이제 써먹어야 할차례다 

기본적인 Login 프로그램을 코딩해보자

Mian.storyboard에 가서 ViewControler를 UINavigationController의 RootView로 바꿔주었다.



ViewController.m으로 가서 다음의 코드를 입력하자


#import "GTMOAuth2ViewControllerTouch.h"

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    static NSString *const kKeychainItemName = @"OAuth2 Sample: Google+";
    
    NSString *kMyClientID = @"Your ClientID";
    NSString *kMyClientSecret = @"Your Client Secret"; 
    
    NSString *scope = @"https://www.googleapis.com/auth/plus.me"; 
    
    GTMOAuth2ViewControllerTouch *viewController;
    viewController = [[GTMOAuth2ViewControllerTouch alloc] initWithScope:scope
                                                                clientID:kMyClientID
                                                            clientSecret:kMyClientSecret
                                                        keychainItemName:kKeychainItemName
                                                                delegate:self


finishedSelector:@selector(viewController:finishedWithAuth:error:)]; [[self navigationController] pushViewController:viewController animated:YES]; } - (void)viewController:(GTMOAuth2ViewControllerTouch *)viewController finishedWithAuth:(GTMOAuth2Authentication *)auth error:(NSError *)error { if (error != nil) { // Authentication failed NSLog(@"error : %@",error); } else { // Authentication succeeded NSLog(@"auth : %@",auth); } }

kMyClientID와 kMyClientSecret은 1번 에서 만든 OAuth 키를 입력하면 된다.

이대로 실행되면 좋겠지만 정상적으로 작동 하지 않는다

missing xib file 이라는 오류를 뱉어 낸다 이는 GTMOAuth2ViewControllerTouch.xib 파일이 자신의 프로젝트에 없어서 생기는 문제이다.


프젝트 안에 GTL.xcodeproj -> GTL Source -> Common -> OAuth2 -> Touch로 들어가 GTMOAuth2ViewControllerTouch.xib파일을 자신의 프로젝트에 import시켜주자



이제 실행해보자!



오 잘된다. 로그인을 하고 앱 승인을 하면 


로그인정보가 Log로 뜬다. 성공이다.




지금까지 Google YouTube API를 이용하여 자신의 프로젝트에 집어 넣고 테스트까지 진행해 보았다.

테스트는 말그대로 테스트라 자신의 프로젝트에 적용할때에는 자신의 원하는 API를 찾아 실행하면 되겠다.