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的網址及申請流程匯總

         

  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM