Google+第三方登录(IOS)
进入 https://console.developers.google.com/apis 选择google+ api,
然后选择管理,
点击红色区域
然后新建一个项目
image.png
输入你的项目名,然后创建
image.png
接下来配置,参照这个链接
https://developers.google.com/identity/sign-in/ios/start-integrating
(还有视频讲解)
点击创建凭据(CREATE AN OAUTH CLIENT ID),选择你刚才创建的项目,选择平台(IOS),输入BundleID
image.png
成功之后会让你下载Json文件,
其中 CLIENT_ID 是在AppDelegate文件中GIDSignIn.sharedInstance().clientID (swift)的值
REVERSED_CLIENT_ID在下面这里设置
image.png
接下来参照这个
https://developers.google.com/identity/sign-in/ios/sign-in
AppDelegate添加GIDSignInDelegate协议
然后
//设置好代理和clientID
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[GIDSignIn sharedInstance].clientID = @"YOUR_CLIENT_ID";
[GIDSignIn sharedInstance].delegate = self;
return YES;
}
//第三方登陆后回调 这边稍微注意一下自己要适配的IOS系统版本
- (BOOL)application:(UIApplication *)app
openURL:(NSURL *)url
options:(NSDictionary<NSString *, id> *)options {
return [[GIDSignIn sharedInstance] handleURL:url
sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]
annotation:options[UIApplicationOpenURLOptionsAnnotationKey]];
}
关于didSignInForUser这个方法,我OC没有在appDelegate写这个函数,并没有什么影响,不过swift里没写报错了(不过我swift写得比较晚,也许sdk更新了吧)
Google+有一个专门的GIDSignInButton,不过我是自己写的Button,在button的点击事件里调用
[[GIDSignIn sharedInstance] signIn];就行,
当然在你的这个button所在的控制器里,要添加代理
GIDSignIn*signIn = [GIDSignIn sharedInstance];
signIn.shouldFetchBasicProfile=YES;
signIn.delegate=self;
signIn.uiDelegate=self;
登录成功后的回调
- (void)signIn:(GIDSignIn*)signIn didSignInForUser:(GIDGoogleUser*)user withError:(NSError*)error
{
NSLog(@"user %@",user);
NSLog(@"error %@",error);
}
之前用OC写了一版,今年又被要求用Swift写一版,基本大同小异。凭借着一些印象,记录一下这个配置。如果有不对的地方,麻烦帮忙指出。