由于app要做海外版,所以最近在app中加入了Line的第三方授权登录。在开发过程中也经历了很多问题,填了不少坑。
line开发者注册
1、注册line账号(必须手机下载客户端,真实手机号码注册,记得手机开VPN),绑定邮箱,然后使用此邮箱进行登录,注册成为开发者。
2、Line developers 地址 登入进行操作
3、line 注册流程图示 注册你的app,iOS的注册很简单,安卓的需要签名,包名,SHA1之类的比较麻烦
4、注册完成之后就可以进行集成了
line集成
使用的mob第三方集成,cocoapods进行集成,简单快速。
pod 'mob_sharesdk', '4.3.2'
pod 'mob_sharesdk/ShareSDKPlatforms/Line'
集成之后,进行项目配置。
1、url Types 里加入line 选项 添加line3rdp.$(PRODUCT_BUNDLE_IDENTIFIER)
2、LSApplicationQueriesSchemes 添加 line,line3rdp.$(PRODUCT_BUNDLE_IDENTIFIER),lineauth, lineauth2 四个key。
3、添加LineSDKConfig,ChannelID 是为刚才line 开发者那里注册的app id。
line使用
在appDelegate中引入头文件 ShareSDK。注意如果在国内开发,记得开启VPN。
1、代码注册
[ShareSDK registPlatforms:^(SSDKRegister *platformsRegister) {
[platformsRegistersetupLineAuthType:SSDKAuthorizeTypeBoth];
}];
2、登录授权
[ShareSDK getUserInfo:SSDKPlatformTypeLine onStateChanged:^(SSDKResponseState state, SSDKUser *user, NSError *error) {
if (state == SSDKResponseStateSuccess) {
//成功之后,获得用户信息 user.credential.uid ,user.credential.token,user.credential.expired
}
else if(state ==SSDKResponseStateCancel) {
}
else{
}
}];
3、用户验证。
客户端这边进行本地验证,或者把数据post给服务端,由服务端进行验证也可。使用的是profileV2进行验证。 https://api.line.me/v2/profile。如果进行accesToken更多操作,请参考line Social API V2
参数配置,[[EPHttpClientManager simpleInstance].requestSerializer setValue:FORMAT(@"Bearer {%@}", accessToken) forHTTPHeaderField:@"Authorization"];
返回用户详细信息之后就可以进行正常使用了。
注意 :line 不提供用户的性别
一般的授权登录也就这样,如若在开发过程中有其他问题,欢迎在下边留言讨论。