Интеграция с gmail в приложении ios

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

2 ответа

Решение

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

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

GTMHTTPFetcher.h, GTMHTTPFetcher.m, GTMOAuth2Authentication.h, GTMOAuth2Authentication.m, GTMOAuth2SignIn.h, GTMOAuth2SignIn.m, GTMOAuth2ViewControllerTouch.h, GTMOAuth2View.mh.JJAHTJBTHTMTHSONTSONTSONTSONTSONTSONTSONTSONTSONTSONTSONTSONTSONTSONTSONTSONTSONTSONTSONTSONTSONTSONTSONTSONTSONTSONTSONTSONTSONTSONTSONTHT

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

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

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

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

security.framework , systemConfiguration.framework

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

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

* 4. Теперь пришло время для кодирования. , , , *
создайте кнопку входа в вашем контроллере и установите для этого действие. Здесь, когда пользователь нажимает кнопку, вызывается метод 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];

    }
}

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

Другие вопросы по тегам