我正在尝试将GoogleSignIn框架集成到iOS应用程序中,并对服务器上的用户进行身份验证.我设法登录用户,但在 – (void)signIn:(GIDSignIn *)signIn didSignInForUser:(GIDGoogleUser *)用户withError:(NSError *)错误委托方法,user.serverAuthCode为nil,我需要通过此服务器身份验证代码,嗯,验证服务器上的用户.
我读了this documentation page,它声明我必须设置[GIDSignIn sharedInstance]的serverClientID属性,但是它没有说明我在哪里找到这个“服务器客户端ID”.我用世界上所有的密钥进行测试都无济于事.
然后我发现this documentation page看起来它试图告诉我们在哪里可以找到这个神奇的id,但是它使用了不好的措辞并没有帮助.我有类型Web应用程序的OAuth2凭据,但是:
>它们用于Web(客户端)应用程序,它与我的iOS应用程序相对应,后者也与服务器通信
>我尝试使用它,但它没有用.
有没有人设法成功逃脱谷歌(可怜)文档的魔力?
解决方法
您需要确保设置了[GIDSignIn sharedInstance] .serverClientID属性;该值可在Google Api控制台中找到.
另外,如果你有一个nil值的user.serverAuthCode,请确保你调用了[[GIDSignIn sharedInstance] signOut];在任何后续尝试之前.否则[GIDSignIn sharedInstance]似乎记得以前的配置.
我在模拟器中获取serverAuthCode没有问题.