2012-06-01 1 views
0

Mac 응용 프로그램 제작에 첫 발을 들여 놓았으며 사업의 첫 번째 주문은 Soundcloud와 함께 OAuth를 사용하여 내 응용 프로그램을 인증합니다. 승인 요청을 보내는 것은 간단하지만, 내가 갇혀있는 곳은 Soundcloud에서 다시 리디렉션을 수신하는 방법입니다.원시 Cocoa 응용 프로그램을위한 OAuth2 리디렉션 URI 수신 방법

info.plist에 내 URL 구성표를 설정하고 들어오는 요청을 수신 대기하도록 내 애플리케이션을 설정했지만 등록하려고 시도 할 때 응답을받지 못합니다. 사파리로 URL을 테스트했는데 정상적으로 작동했습니다.

여기 내 애플 대리자에서 코드 조각을이다 :

- (void) applicationDidFinishLaunching:(NSNotification *)aNotification 
{ 
NSAppleEventManager *appleEventManager = [NSAppleEventManager sharedAppleEventManager]; 
[appleEventManager setEventHandler:self 
         andSelector:@selector(handleGetURLEvent:withReplyEvent:) 
        forEventClass:kInternetEventClass andEventID:kAEGetURL]; 

[[NXOAuth2AccountStore sharedStore] setClientID:@"myClientID" 
             secret:@"superSecretSecret" 
           authorizationURL:[NSURL URLWithString:@"https://soundcloud.com/connect"] 
             tokenURL:[NSURL URLWithString:@"https://api.soundcloud.com/oauth2/token"] 
            redirectURL:[NSURL URLWithString:@"myApp://connect"] 
           forAccountType:@"iHopeThisWorks"]; 

} 

- (void)handleGetURLEvent:(NSAppleEventDescriptor *)event withReplyEvent:(NSAppleEventDescriptor *)replyEvent 
{ 
NSURL *url = [NSURL URLWithString:[[event paramDescriptorForKeyword:keyDirectObject] stringValue]]; 
} 

내 생각은 사운드 클라우드는을 myApp을 어디서 찾을 수 있는지 알 수 없다는 것입니다 : // 연결을 단지 내 로컬 컴퓨터에 존재하기 때문이다. 그렇다면 HTTP 요청을 처리 할 웹 서비스 같은 중개자를 만들어야합니까? 그렇다면 중개자가 내 컴퓨터로 다시 인터페이스하는 방법을 어떻게 알 수 있습니까? 미안 기본 또는 잘못 질문,하지만 이전에 말했듯이, 이것은 내 첫 번째 촬영이 이런 식으로 내 google - fu 솔루션을 찾는 날을 실패했습니다.

답변

3

일반적으로 OAuth 서비스 제공 업체는 데스크톱에 Resource Owner Password Credentials Grant을 구현해야합니다. 그렇지 않은 경우에는 그렇지 않습니다.

하지만 이미 OAuth2Client에 대한 래퍼를 만들었습니다. https://github.com/soundcloud/CocoaSoundCloudAPI에서 찾아보십시오. 문서는 http://developers.soundcloud.com/docs#authentication입니다.

신청서가 myApp 인 경우 URI는 myApp://connect입니다. vimeo의 개발자 비디오보기 : http://vimeo.com/28715664.

최상의 문서를 읽으십시오.

0

NSWebView을 사용할 수 있습니다. 실제로 "보기"가 필요하지 않기 때문에 이것이 꽤 우아하지 않다는 것을 알지만 이것이 리다이렉션을 얻는 가장 쉬운 방법이라는 것을 알고 있습니다.

관련 문제