2014-03-29 2 views
1

API를 사용하여 Vimeo에 액세스하기 위해 앱을 인증하려고했습니다. 나는 이것을 통과하지 못하는 것 같습니다. vimeo가 사용자로부터 액세스 권한을 요청하는 페이지를 볼 수 있으며 '허용'버튼을 클릭하면 오류가 표시됩니다. 나는 GTM-OAuth2Vimeo API iOS 용 OAuth 2.0 - 인증 토큰을받지 못했습니다.

사용하고 난 코드 아래에 추가 한 :

#import "ViewController.h" 
#import "GTMOAuth2Authentication.h" 
#import "GTMOAuth2ViewControllerTouch.h" 

@interface ViewController() 

@end 

@implementation ViewController 

- (void)viewDidLoad{ 
    [super viewDidLoad]; 
    [self signInToVimeo]; 
} 


- (void)didReceiveMemoryWarning{ 
    [super didReceiveMemoryWarning]; 
// Dispose of any resources that can be recreated. 
} 


#define ClientID @"clientID" 
#define ClientSecret @"clientSecret" 
#define AuthURL @"https://api.vimeo.com/oauth/authorize" 
#define TokenURL @"https://api.vimeo.com/oauth/request_token" 


- (GTMOAuth2Authentication *)authForVimeo 
{ 
//This URL is defined by the individual 3rd party APIs, be sure to read their documentation 

    NSURL * tokenURL = [NSURL URLWithString:TokenURL]; 
// We'll make up an arbitrary redirectURI. The controller will watch for 
// the server to redirect the web view to this URI, but this URI will not be 
// loaded, so it need not be for any actual web page. This needs to match the URI set as the 
// redirect URI when configuring the app with Instagram. 
    NSString * redirectURI = @"Simple-OAuth2://"; 
    GTMOAuth2Authentication * auth; 

    auth = [GTMOAuth2Authentication authenticationWithServiceProvider:@"Vimeo" 
                 tokenURL:tokenURL 
                 redirectURI:redirectURI 
                 clientID:ClientID 
                clientSecret:ClientSecret]; 
    auth.scope = @"public"; 
    return auth; 
} 


- (void)signInToVimeo{ 
    GTMOAuth2Authentication * auth = [self authForVimeo]; 

    // Display the authentication view 
    GTMOAuth2ViewControllerTouch * viewController = [[GTMOAuth2ViewControllerTouch alloc] initWithAuthentication:auth 
                          authorizationURL:[NSURL URLWithString:AuthURL] 
                          keychainItemName:@"VimeoKeychainItem" 
                            delegate:self 
                          finishedSelector:@selector(viewController:finishedWithAuth:error:)]; 
    [self.navigationController pushViewController:viewController animated:YES]; 
    } 


- (void)viewController:(GTMOAuth2ViewControllerTouch *)viewController 
    finishedWithAuth:(GTMOAuth2Authentication *)auth 
      error:(NSError *)error 
{ 
    NSLog(@"finished"); 
    NSLog(@"auth access token: %@", auth.accessToken); 

    [self.navigationController popToViewController:self animated:NO]; 
    if (error != nil) { 
     UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Error Authorizing with Vimeo" 
                message:[error localizedDescription] 
                delegate:nil 
              cancelButtonTitle:@"OK" 
              otherButtonTitles:nil]; 
     [alert show]; 
    } else { 

     UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Success Authorizing with Vimeo" 
                message:[error localizedDescription] 
                delegate:nil 
              cancelButtonTitle:@"OK" 
              otherButtonTitles:nil]; 
     [alert show]; 
} 
} 

@end 

나는 인증 토큰을받지 않습니다. Here은 '허용'버튼을 클릭하면 나타나는 스크린 샷입니다.

답변

0

귀하의 클라이언트 ID와 클라이언트 비밀은 귀하가 "clientID"/ "clientSecret"이 아닌 Vimeo 개발자 웹 사이트에서 얻은 비밀이어야합니다.

+0

그가 여기에 자신의 실제 client_id 및 client_secret을 게시 할 것이라고 생각 했습니까? – nenchev

+0

@nenchev Oh lol .... 바보가되어서 나쁘다. 하하 – Supertecnoboff

+0

GTM-OAuth2는 읽기 전용입니다. 어디서 다운로드 할 수 있습니까? – Durgaprasad