存储Google App权限 - iOS

时间:2014-07-21 11:27:43

标签: ios google-authentication

我是iOS开发/ Objective C的新手,所以请保持温和; - )

我正在创建一个使用Google+登录SDK的应用程序,我有一个工作原型,用户点按谷歌登录按钮,然后他们被重定向到safari,他们登录到他们的谷歌帐户,并且在返回iOS应用程序之前,最终会显示我的应用程序的“帐户权限”屏幕。

我遇到的问题是,在允许应用访问相关信息后,当通过Google登录登录应用时,用户会不断导航到“帐户权限”屏幕。

现在,我的印象是,一旦用户允许该应用访问相关信息,用户就不会被要求批准此项,除非他们已通过security.google.com撤消访问权限但我发现每次登录尝试后我都必须批准权限。

以前有人有这个问题吗?我已经进行了一些谷歌搜索,以寻找这个问题的答案,但没有多少运气。任何帮助将不胜感激!

感谢。

以下代码:

- (void)viewDidLoad {

    [super viewDidLoad];

    GPPSignIn *signIn = [GPPSignIn sharedInstance];
    signIn.shouldFetchGooglePlusUser = YES; // get the user profile
    signIn.shouldFetchGoogleUserEmail = YES;  // get the user's email
    signIn.scopes = @[ @"profile" ];            // "profile" scope

    // Optional: declare signIn.actions, see "app activities"
    signIn.delegate = self;

    [signIn trySilentAuthentication];

}

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

        GTLQueryPlus *query = [GTLQueryPlus queryForPeopleGetWithUserId:@"me"];

        // 1. Create a |GTLServicePlus| instance to send a request to Google+.
        GTLServicePlus* plusService = [[GTLServicePlus alloc] init] ;
        plusService.retryEnabled = YES;

        // 2. Set a valid |GTMOAuth2Authentication| object as the authorizer.
        [plusService setAuthorizer:[GPPSignIn sharedInstance].authentication];

        // 3. Use the "v1" version of the Google+ API.*
        plusService.apiVersion = @"v1";
        [plusService executeQuery:query
                completionHandler:^(GTLServiceTicket *ticket,
                                    GTLPlusPerson *person,
                                    NSError *error)
         {

            if (error) {

                NSLog(@"Received Error %@ and auth object==%@", error, auth);

            }

            else {
                // Send the basic user information to the console
                NSLog(@"Email=%@", [GPPSignIn sharedInstance].authentication.userEmail);
                NSLog(@"User Name=%@", [person.name.givenName stringByAppendingFormat:@" %@", person.name.familyName]);
[self performSegueWithIdentifier:@"loginSuccessful" sender:self]; // Once logged in send user to main view
}

1 个答案:

答案 0 :(得分:0)

我认为您正在寻找trySilentAuthentication,这是Google登录SDK的一部分。您可以在此处找到使用者:http://developers.google.com/+/mobile/ios/sign-in