vimeo oAth аутентификация через приложение для iPhone - PullRequest
2 голосов
/ 12 мая 2011

У меня есть приложение для iPad, и мне нужно интегрировать в него vimeo.Я на начальной стадии интеграции его в свое приложение.Сначала мне нужно пройти проверку подлинности моего приложения с помощью vimeo.

Я прошел все этапы проверки подлинности в документации и смог пройти первые два этапа:

Запрос токена: http://vimeo.com/oauth/request_token

Авторизация пользователя: http://vimeo.com/oauth/authorize

Но не удалось получить oauth_token и oauth_token_secret до последнего шага:

Токен доступа: http://vimeo.com/oauth/access_token

Перенаправления Vimeoдля обратного вызова URL вместо возврата к приложению, что нормально, пока я не получу верификатор и токен авторизации.Но как только я использую их для получения oauth_token и oauth_token_secret, консоль выдает следующее сообщение об ошибке:

Ошибка домена = NSURLErrorDomain Code = -1012 «Операция не может быть завершена. (Ошибка NSURLErrorDomain -1012.)» UserInfo =0x18146180 {NSErrorFailingURLKey = http://vimeo.com/oauth/access_token?oauth_token=141b4ff56c48dc5d03501297bde85ebc&oauth_verifier=land-1886924229, NSErrorFailingURLStringKey = http://vimeo.com/oauth/access_token?oauth_token=141b4ff56c48dc5d03501297bde85ebc&oauth_verifier=land-1886924229, NSUnderlyingError = 0x181483d0 "Операция не может быть завершена. (KCFErrorDomainCFNetwork ошибка -1012.), Пожалуйста,

*по крайней мере, предоставьте некоторые направления?

Для дальнейшего понимания, я использую OAuthConsumer Framework.Ниже приведены строки кода, в которые мы помещаем запрос для получения токена доступа:

  • (void) successAuthorizationWithToken: (NSString *) верификатор токена: (NSString *) verifyier {NSLog (@ ")successfulAuthorizationWithToken ");OAMutableURLRequest * запрос;OADataFetcher * fetcher;

    // NSURL * url = [NSURL URLWithString: @ "https://api.twitter.com/oauth/access_token"]; NSURL * url = [NSURL URLWithString: @" http://vimeo.com/oauth/access_token"]; request = [[[OAMutableURLRequestalloc] initWithURL: url потребитель: self.consumer токен: self.accessToken область: ноль signatureProvider: nil autorelease];

    OARequestParameter * p0 = [[OARequestParameter alloc] initWithName: @ "oauth_token" значение: token]OARequestParameter * p1 = [[OARequestParameter alloc] initWithName: @ "oauth_verifier" value: verifyier];NSArray * params = [NSArray arrayWithObjects: p0, p1, nil];[request setParameters: params];

    fetcher = [[[OADataFetcher alloc] init] autorelease];

    [fetcher fetchDataWithRequest: запрос делегата: self didFinishSelector: @selector (accessTokenTicket: didFinishWithData :)didFailSelector: @selector (accessTokenTicket: didFailWithError:)];

    [p0 release];[p1 release];

}

Я также попробовал решения, указанные в ссылке ниже: Twitter API + OAuthConsumer.framework

В нем указано использовать [[OAHMAC_SHA1SignatureProvider alloc] init] autorelease] в качестве signatureProvider.Но результаты те же.

Мне нужно получить следующие значения после того, как я получу верификатор и авторизованный токен с помощью шага токена доступа: oauth_token = YourAuthorizedOauthToken & oauth_token_secret = YourAuthorizedTokenSecret

Ответы [ 2 ]

0 голосов
/ 12 мая 2011

Наконец-то все заработало. Были проблемы с базовой строкой и форматом строки заголовка oAuth.

0 голосов
/ 12 мая 2011

Вы должны предоставить свой собственный обратный вызов в вашем запросе, который выглядит как myapp://... и зарегистрировать обработчик myapp в iOS, чтобы при перенаправлении браузера iOS возвращала управление вашему приложению. Я предполагаю, что вы правильно используете OAuth и запускаете браузер из своего приложения для взаимодействия с пользователем. В качестве альтернативы вы можете использовать WebView (не то, что рекомендует OAuth), тогда в делегате WebView вы можете перехватить перенаправление и проанализировать access toke out.

...