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 2017-03-28 19:35  高彰  阅读(2489)  评论(0编辑  收藏  举报

导航