iOS 接入SnapChat登录

最近项目SnapChat第三方登录的需求,于是就阅读了开发文档接入了。在这过程中也遇到了一些小问题,索性就记录下来,希望可以能帮到一些人

1.SnapChat开发者管理后台创建App

https://kit.snapchat.com/portal/apps,管理后台可以填写开发和生产的一些应用配置信息
这里需要注意的是Redirect URLs一栏,最开始以为是服务器配置的回调地址,但是没有给出后端应该怎么校验和使用,最后发现是本地的URL Scheme信息可以登录授权成功,拿到我们需要的用户唯一标识 externalId

app配置信息

2.配置开发项目

info.plist 中加入SnapChat配置

<key>SCSDKClientId</key>
    <string>d8c60733-f2fb-499b-b073-dc3e1c3600c6</string>
    <key>SCSDKRedirectUrl</key>
    <string>tassel://snapLogin</string>
    <key>SCSDKScopes</key>
    <array>
        <string>https://auth.snapchat.com/oauth2/api/user.display_name</string>
        <string>https://auth.snapchat.com/oauth2/api/user.external_id</string>
        <string>https://auth.snapchat.com/oauth2/api/user.bitmoji.avatar</string>
    </array>
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真实性的方法,为了安全起见可以考虑对此项字段进行处理

最后放上 Demo 如果你在接入过程中遇到或者有别的想法欢迎沟通交流

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 怀孩子的喜和忧、生孩子的疼和痛、坐月子的苦和乏、带孩子的累和乐都过了一遍,个中滋味也就走过这条路的人才能感同身受。...
    秋风扫落叶644阅读 2,206评论 0 0
  • 今天这种潜在的感觉不断涌现在我脑海里,清晰地让我看见自己有这种感受:回娘家心底里是一丝丝恐惧,身体却又期盼着回去。...
    Crystal婉韵阅读 3,315评论 4 2
  • 看过一些文章,想想这句话说的很有理:女人一直都是在做后悔的事情,没长大的孩子想长大,没结婚的想结婚,结婚后没有孩子...
    心悦_532d阅读 825评论 0 0