Swift版 share sdk 第三方登录facebook,推特,googleplus集成 全教程

  最近在写一个swift项目,需要用到facebook,googleplus,推特,的第三方登录,另外一个做oc项目的同事和我说他的shareSDK第三方登录有一个坑一直解决不了,让我不要用sharesdk,但是楼主是一个有追求的人,毅然投身入sharesdk中。

  第壹步:获取sharesdk appkey.

  如何获取appkey:http://bbs.mob.com/forum.php?mod=viewthread&tid=8212&extra=page%3D1

  第二步:下载sharesdk

  下载链接:http://www.mob.com/downloadDetail/ShareSDK/ios 注意事项:sharesdk 的swift版 其实是通过桥接oc版的来实习的

  第三步: 集成sdk,由于楼主只需要集成facebook,googleplus,推特,的第三方登录,桥接文件如下,官方文档中第5步有个小坑

  集成教程:http://wiki.mob.com/swift-调用-sharesdk/ 

  桥接文件代码:

复制代码
#ifndef MoveApp_Bridging_Header_h
#define MoveApp_Bridging_Header_h


#import <ShareSDK/ShareSDK.h>
#import <ShareSDKConnector/ShareSDKConnector.h>
#import <FacebookConnector/FacebookConnector.h>
#import <GooglePlusConnector/SSDKGooglePlusControllerStyle.h>

#endif /* MoveApp_Bridging_Header_h */
复制代码

  第四步:配置AppDelegate.swift文件,直接上代码:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool {
复制代码
  ShareSDK.registerApp("你的sharesdkappkey", activePlatforms: [
            SSDKPlatformType.typeFacebook.rawValue,
            SSDKPlatformType.typeTwitter.rawValue,
            SSDKPlatformType.typeGooglePlus.rawValue,
            ],
            
         onImport: { (platform : SSDKPlatformType) in
            switch platform
            {
            default:
                break
            }
        }) { (platform : SSDKPlatformType, appInfo : NSMutableDictionary?) in
            
            switch platform
            {
                
            case SSDKPlatformType.typeFacebook:
                //设置Facebook应用信息,其中authType设置为只用SSO形式授权
                
                appInfo?.ssdkSetupFacebook(byApiKey: "107704292745179",
                                           appSecret : "38053202e1a5fe26c80c753071f0b573",
                                           authType : SSDKAuthTypeBoth)
                
            case SSDKPlatformType.typeTwitter:
                //设置Twitter应用信息
                appInfo?.ssdkSetupTwitter(byConsumerKey: "LRBM0H75rWrU9gNHvlEAA2aOy",
                                          consumerSecret : "gbeWsZvA9ELJSdoBzJ5oLKX0TU09UOwrzdGfo9Tg7DjyGuMe8G",
                                          redirectUri : "http://www.baidu.com")
                //设置gooleplus应用信息
            case SSDKPlatformType.typeGooglePlus:
                appInfo?.ssdkSetupGooglePlus(byClientID: "232554794995.apps.googleusercontent.com", clientSecret: "可不填", redirectUri: "http://localhost");
                break
                
            default:
                break
            }
            
        }
复制代码
     return true
    }

    }

第五部:控制器点击按钮授权登录获取令牌
复制代码
func OAuth(sender: UIButton) {
        
        //授权
        ShareSDK.authorize(SSDKPlatformType.需要的第三方类型, settings: nil, onStateChanged: { (state : SSDKResponseState, user : SSDKUser?, error : Error?) -> Void in
            
            switch state{
                
            case SSDKResponseState.success: print("授权成功,用户信息为\(user)\n ----- 授权凭证为\(user?.credential)")
            case SSDKResponseState.fail:    print("授权失败,错误描述:\(error)")
            case SSDKResponseState.cancel:  print("操作取消")
                
            default:
                break
            }
        })
    
}
复制代码

全教程终

注意事项:这时候社交平台web授权窗口仍然不通有如下可能:

  redirectUri 与 该第三方开发者应用的回调地址不同,或者配置错误

  或者社交平台appkey 和 secrt 有错误.

最后:

官方的开发者应用设置网址:各社交平台申请AppKey的网址及申请流程汇总

         

  

  

posted on   高彰  阅读(2520)  评论(0编辑  收藏  举报

编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示