2

在 iOS 中,使用 google + sdk 并特别遵循他们的登录文档,[[GPPSignIn sharedInstance] userID]我似乎得到 了一个 nil 用户 ID,例如nil

我第一次授权应用程序时,我得到了一个有效的 userId,但第二次进入我的应用程序期望看到一个有效的用户 id,它又是 nil。当我检查[[GPPSignIn sharedInstance] trySilentAuthentication]它返回true。

我正在遵循与示例项目中描述的场景非常相似的场景。这可能是什么原因造成的?

4

2 回答 2

0

我做了这几个步骤来解决这个问题:

  1. 在 Google Developer Console 中启用 Google+ api
  2. 将这些属性设置为 true

    googleSignin.scopes = ["https://www.googleapis.com/auth/plus.me", "https://www.googleapis.com/auth/plus.login", "https://www.googleapis.com/auth/calendar", "https://www.googleapis.com/auth/userinfo.profile"]
    googleSignin.shouldFetchGoogleUserID = true
    googleSignin.shouldFetchGoogleUserEmail = true
    googleSignin.shouldFetchGooglePlusUser = true
    
  3. 使用GPPSignIn.sharedInstance().userIDauth.userIDfinishedWithAuth(auth: error:)

于 2015-07-06T10:54:05.983 回答
0

谷歌用户 ID。它仅在 |shouldFetchGoogleUserID| 时可用 已设置并且 |trySilentAuthentication| 或 |认证| 已成功完成。您可以使用它。

    GPPSignIn *signIn = [GPPSignIn sharedInstance];
    signIn.shouldFetchGooglePlusUser = YES;
    signIn.shouldFetchGoogleUserEmail = YES;
    signIn.shouldFetchGoogleUserID = YES;
    signIn.delegate = self;
    signIn.clientID = kClientId;
    signIn.scopes = @[kGTLAuthScopePlusLogin];

    signIn.actions = [NSArray  arrayWithObjects:@"http://schemas.google.com/ListenActivity",nil];
    [signIn authenticate];
于 2015-07-06T11:11:19.153 回答