• 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)
     ----- 授权凭证为(user?.credential)")
                case SSDKResponseState.fail:    print("授权失败,错误描述:(error)")
                case SSDKResponseState.cancel:  print("操作取消")
                    
                default:
                    break
                }
            })
        
    }

    全教程终

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

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

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

    最后:

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

             

      

      

  • 相关阅读:
    Symfony框架实战学习
    学习Symfony之环境的搭建
    js的学习 (数组)
    js的学习 (对象)
    js的学习 (语句)
    Django 应用开发(3)
    Django 应用开发(2)
    Django 学习搭建博客
    2-4.通用选择器
    2-3.class选择器
  • 原文地址:https://www.cnblogs.com/gaozhang12345/p/6636489.html
Copyright © 2020-2023  润新知