Skip to content

开发必看——iOS 接入SnapChat登录

开发必看——iOS 接入SnapChat登录

最近项目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真实性的方法,为了安全起见可以考虑对此项字段进行处理

相关推荐: PineLabs获得5000万美元

厦门商城系统开发 商业平台Pine Labs已经从总部位于伦敦的国际投资公司Vitruvianian Partners在那里筹集了5000万美元。   Pine Labs正在东南亚扩大其BNPL业务。本月早些时候,公司和万事达(Mastercard)和星展银行…

    码刀科技(www.lekshop.cn)是国内知名企业级电商平台提供商,为企业级商家提供最佳的电商平台搭建(多种模式电商平台搭建:B2B/B2B2C/B2C/O2O/新零售/跨境等)、平台管理系统开发及互联网采购解决方案服务, 联系客服了解更多.

    电子商务网站建设的重要性和好处