iOS开发

Google+第三方登录(IOS)

2018-12-06  本文已影响0人  zaq1125

进入 https://console.developers.google.com/apis 选择google+ api,
然后选择管理,
点击红色区域

image.png
然后新建一个项目
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写一版,基本大同小异。凭借着一些印象,记录一下这个配置。如果有不对的地方,麻烦帮忙指出。

上一篇下一篇

猜你喜欢

热点阅读