我正在尝试将GooglePlus API添加到我的应用中。
我使用CocoaPods添加了Google+框架,我的应用程序中有登录按钮。
GPPSignIn
对象在进行登录的视图控制器中的viewDidLoad
函数中设置如下...
@property (nonatomic, strong) GPPSignIn *signIn;
...
self.signIn = [GPPSignIn sharedInstance];
self.signIn.clientID = @"blahblahmynumber.apps.googleusercontent.com";
self.signIn.scopes = @[kGTLAuthScopePlusLogin];
self.signIn.delegate = self;
[self.signIn trySilentAuthentication];
然后按下登录按钮...
- (IBAction)googleButtonPressed:(id)sender
{
[self.signIn authenticate];
}
...和委托方法......
- (void)finishedWithAuth: (GTMOAuth2Authentication *)auth
error: (NSError *) error
{
NSLog(@"Received error %@ and auth object %@",error, auth);
}
这一切似乎都有效,我被推到谷歌登录并确认访问我的帐户然后我被推回到应用程序并且控制台显示...
收到错误错误域= com.google.GooglePlusPlatform代码= -1“不匹配的身份验证”UserInfo = 0x1d5cb170 {NSLocalizedDescription =不匹配的身份验证}和身份验证对象(null)
现在我被卡住了。我找不到任何有关“不匹配的身份验证”的含义的信息?
BTW,我编写的所有代码都来自Google开发人员门户网站和“如何”文档。到目前为止我尝试过的事情
kGTLAuthScopePlusLogin
和kGTLAuthScopePlusMe
将范围数组更改为所有可能的组合。redirect_uri_mismatch
问题。问题是登录后返回登录代理的“不匹配的身份验证”。答案 0 :(得分:15)
好的,修复这个很容易。删除一些代码。
我按照Google文档了解如何在屏幕上创建登录信息。
我添加了GPPSignInButton
并将其附加到一个函数中以运行[signIn authenticate]
。
然而,这是我出错的地方。 GPPSignInButton
内置了此函数。不知何故,通过使其运行完全相同的函数,它会导致出现此错误。
修复很简单。只需删除按钮上的操作即可。该按钮看起来没有任何功能,但它实际上可以作为登录按钮正常工作。
在文档中,它说要使用[self.signIn authenticate];
来启动登录过程。它并没有说如果你使用GPPSignInButton
它会自动执行此操作。 Grr :(无论如何,我现在通过删除代码来修复它...
希望这有助于某人。