
最近项目SnapChat第三方登录的需求,于是就阅读了开发文档接入了。在这过程中也遇到了一些小问题,索性就记录下来,希望可以能帮到一些人
1.SnapChat开发者管理后台创建App
https://kit.snapchat.com/portal/apps,管理后台可以填写开发和生产的一些应用配置信息
这里需要注意的是Redirect URLs一栏,最开始以为是服务器配置的回调地址,但是没有给出后端应该怎么校验和使用,最后发现是本地的URL Scheme信息可以登录授权成功,拿到我们需要的用户唯一标识externalId
2.配置开发项目
SCSDKClientId
d8c60733-f2fb-499b-b073-dc3e1c3600c6
SCSDKRedirectUrl
tassel://snapLogin
SCSDKScopes
https://auth.snapchat.com/oauth2/api/user.display_name
https://auth.snapchat.com/oauth2/api/user.external_id
https://auth.snapchat.com/oauth2/api/user.bitmoji.avatar
snapchat配置
URL Schemes配置
3.开始接入SDK
注意:根据SnapChat官方文档中描述的SnapChat SDK支持是最低设备版本iOS 10,所以如果你的App低于这个版本的话,考虑到兼容稳定性,可以尝试在低版本系统中进行一些隐藏处理
这里是以Pod方式引入的
pod 'SnapSDK', :subspecs => ['SCSDKLoginKit']
关键代码
- (void)snapChatLogin {
[SCSDKLoginClient loginFromViewController:self completion:^(BOOL success, NSError * _Nullable error) {
if (success) {
[self fetchUserData];
}
}];}- (void)fetchUserData {
//这里是GraphQL 获取需要的用户信息,可以根据需要获取
NSString *queryString = @"{me{externalId, displayName, bitmoji{avatar}}}";
[SCSDKLoginClient fetchUserDataWithQuery:queryString variables:nil success:^(NSDictionary * _Nullable resources) {
NSLog(@"=========> user data %@",resources);
} failure:^(NSError * _Nullable error, BOOL isUserLoggedOut) {
}];}
SnapChat SDK支持原生app跳转登录以及网页登录,这里测试方便使用的是模拟器
登录授权
成功拿到用户信息
user data
在阅读SnapChat开发文档中并未找到后端校验externalId真实性的方法,为了安全起见可以考虑对此项字段进行处理
厦门商城系统开发 商业平台Pine Labs已经从总部位于伦敦的国际投资公司Vitruvianian Partners在那里筹集了5000万美元。 Pine Labs正在东南亚扩大其BNPL业务。本月早些时候,公司和万事达(Mastercard)和星展银行…
码刀科技(www.lekshop.cn)是国内知名企业级电商平台提供商,为企业级商家提供最佳的电商平台搭建(多种模式电商平台搭建:B2B/B2B2C/B2C/O2O/新零售/跨境等)、平台管理系统开发及互联网采购解决方案服务, 联系客服了解更多.