2013-08-25 4 views
4

Я работаю над ios-приложением, недавно у меня появилось новое требование для него, чтобы предоставить пользователю возможность входа в систему с помощью gmail. когда пользователь нажал кнопку входа в систему, я хочу открыть экран входа в Gmail и после ввода пользователем его учетных данных, если учетные данные верны, а не открывать его почту, я хочу, чтобы элемент управления перешел на домашнюю страницу моего приложения. может кто-нибудь сказать мне, как достичь этогоинтеграция gmail в приложении ios

+0

Привет, я могу интегрировать gmail в ur приложение. Пожалуйста, предоставьте мне gud link.I попробовал ур ответить, но я получаю ошибку. Error Domain = com.google.GTMOAuth2 Code = -1001..Когда я иду на другой код, следующий эта ссылка http://technogerms.com/login-with-google-using-oauth-2-0-for-ios-xcode-objective-c/I получает токен доступа, но не может получить данные пользователя с помощью этого токена доступа – Honey

+0

@arizah, что такое адрес электронной почты ur, я могу отправить образец ua –

+0

Хорошо, пожалуйста, отправьте его на id в профиль – Honey

ответ

2

Наконец-то я нашел решение. , .i Думаю, это поможет кому-то еще Следуйте приведенным ниже инструкциям по интеграции gmail с вашим приложением.

1.Добавьте следующие классы к проекту.

GTMHTTPFetcher.h, GTMHTTPFetcher.m, GTMOAuth2Authentication.h, GTMOAuth2Authentication.m, GTMOAuth2SignIn.h, GTMOAuth2SignIn.m, GTMOAuth2ViewControllerTouch.h, GTMOAuth2ViewControllerTouch.m, GTMOAuth2ViewTouch.xib, SBJSON.h, SBJSON.m

вы получите эти классы здесь: https://github.com/jonmountjoy/Force.com-iOS-oAuth-2.0-Example

Примечание: если вы работаете под ARC окружающей среды, то вы должны отключить ARC для следующих файлов:
GTMHTTPFetcher.m, GTMOAuth2Authentication.m, GTMOAuth2SignIn.m, GTMOAuth2ViewController Touch.m

Чтобы отключить ARC для исходных файлов в Xcode 4, выберите проект и цель в Xcode. На вкладке «Сборка фаз» на вкладке «Разбиение фаз» разверните фазу сборки источников компиляции, выберите исходные файлы библиотеки, затем нажмите «Ввод», чтобы открыть поле редактирования, и введите «fno-objc-arc» в качестве флага компилятора для этих файлов.

2. добавить следующие рамки

security.framework , systemConfiguration.framework 

3. Зарегистрируйте свое приложение для Google API консоли .... здесь:https://code.google.com/apis/console

Затем перейдите в раздел ApiAccess, создайте идентификатор клиента для приложения iOS. , то вы получите clientID, ClientSecret и RedirectUrl

* 4. Теперь пришло время для кодирования. , , , *
создайте кнопку signIn в своем контроллере и установите для этого действие. Здесь, когда пользователь нажимает кнопку, вызывается вызывающий метод SignInGoogleButtonClicked.

//import GTMOAuth2Authentication , GTMOAuth2ViewControllerTouch 

#define GoogleClientID @"paster your client id" 
#define GoogleClientSecret @"paste your client secret" 
#define GoogleAuthURL @"https://accounts.google.com/o/oauth2/auth" 
#define GoogleTokenURL @"https://accounts.google.com/o/oauth2/token" 

-(void) SignInGoogleButtonClicked 
{ 

NSURL * tokenURL = [NSURL URLWithString:GoogleTokenURL]; 

    NSString * redirectURI = @"urn:ietf:wg:oauth:2.0:oob"; 

    GTMOAuth2Authentication * auth; 

    auth = [GTMOAuth2Authentication authenticationWithServiceProvider:@"google" 
                  tokenURL:tokenURL 
                  redirectURI:redirectURI 
                  clientID:GoogleClientID 
                 clientSecret:GoogleClientSecret]; 

    auth.scope = @"https://www.googleapis.com/auth/plus.me"; 

    GTMOAuth2ViewControllerTouch * viewcontroller = [[GTMOAuth2ViewControllerTouch alloc] initWithAuthentication:auth 
                           authorizationURL:[NSURL URLWithString:GoogleAuthURL] 
                           keychainItemName:@"GoogleKeychainName" delegate:self 
                           finishedSelector:@selector(viewController:finishedWithAuth:error:)]; 

    [self.navigationController pushViewController:viewcontroller animated:YES]; 

} 



//this method is called when authentication finished 

- (void)viewController:(GTMOAuth2ViewControllerTouch *)viewController finishedWithAuth:(GTMOAuth2Authentication *)auth error:(NSError *)error 
{ 

    if (error != nil) { 

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

     UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Alert !" 
                 message:@"success" 
                 delegate:nil 
                 cancelButtonTitle:@"OK" 
                 otherButtonTitles:nil]; 
     [alert show]; 

    } 
} 
+1

, я пробовал эту настройку шаг за шагом, но не работал, чтобы не получить никаких ошибок. или также не получить для него окно входа в Gmail. – Jitendra

+0

человек код работает для меня, вы можете просто перекрестно проверить свой код один раз. –

+0

ya этот код отлично работает для меня, но как я получаю информацию для входа в систему, такую ​​как facebook graph api, они предоставляют все подробности ... – Jitendra

0

Я нашел его. но тогда я просто могу получить фрагмент. Первые несколько слов электронной почты & не все. Я просто остановился, я не нашел другого способа сделать это. потому что я использую OAuth 2.0.

Смежные вопросы