GTMOAuth2Authentication с Vimeo
Осталось два дня, когда я начал изучать OAuth, и у меня возникла следующая проблема. У меня есть некоторые проблемы с аутентификацией в Vimeo через GTMOAuth2Authentication
, Когда я разрешаю разрешения для моего приложения, я получаю эту ошибку на Vimeo:
"Ой, что-то пошло не так! Произошла ошибка. Вы не сможете подключиться..."
Пожалуйста, проверьте мой код и скажите, что не так:
- (void)authenticate
{
GTMOAuth2Authentication * auth = [self configuredAuth];
// Display the authentication view
GTMOAuth2ViewControllerTouch * viewController = [[GTMOAuth2ViewControllerTouch alloc] initWithAuthentication:auth authorizationURL:[NSURL URLWithString:kAuthURL] keychainItemName:kKeychainItemName delegate:self finishedSelector:@selector(viewController:finishedWithAuth:error:)];
[_parentView presentViewController:viewController animated:YES completion:nil];
}
-(GTMOAuth2Authentication *)configuredAuth
{
NSURL * tokenURL = [NSURL URLWithString:kTokenURL];
NSString * redirectURI = @"com.mytest.app://";
GTMOAuth2Authentication * auth;
auth = [GTMOAuth2Authentication authenticationWithServiceProvider:kKeychainItemName
tokenURL:tokenURL
redirectURI:redirectURI
clientID:kClientID
clientSecret:kClientSecret];
auth.scope = @"public";
return auth;
}
- (void)viewController:(GTMOAuth2ViewControllerTouch * )viewController finishedWithAuth:(GTMOAuth2Authentication * )auth error:(NSError * )error
{
NSLog(@"finished");
NSLog(@"auth access token: %@", auth.accessToken);
if (error != nil)
{
UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Error Authorizing with Vimeo"
message:[error localizedDescription]
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
NSLog(@"%@", error);
[alert show];
}
else
{
UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Success Authorizing with Vimeo"
message:[error localizedDescription]
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
}
[viewController dismissViewControllerAnimated:YES completion:nil];
}
Я установил такой же URI перенаправления в настройках приложения в Vimeo и, конечно, я настроил его в своем приложении (т.е. я смог из safari перенаправить в свое приложение через com.mytest.app://
). И конечно в kClientID
а также kClientSecret
определенный идентификатор и секрет от developer.vimeo.com.
Когда я закрываю Auth Controller, я всегда получаю эту ошибку:
Ошибка домена =com.google.GTMOAuth2 Code=-1000 "Операция не может быть завершена. (Com.google.GTMOAuth2 ошибка -1000.)"
Это похоже на проблему с URI перенаправления (обратного вызова), но я не могу понять, что именно создает проблему.
1 ответ
Я не думаю, что ваш URL перенаправления правильный. Это выглядит как идентификатор пакета.
NSString * redirectURI = @"com.mytest.app://";
Правильно ли настроена схема URL?
Перейдите в Xcode -> Настройки проекта -> Основная цель -> Информация -> Типы URL
Убедитесь, что ваши схемы URL настроены (вы добавили тип URL с помощью кнопки +), и любое имеющееся там значение соответствует вашему URI перенаправления.
Схемы URL = "testscheme" -> "testscheme: //"
Удачи!