iOS使用ShareSDK集成新浪微博分享

前言

在iOS平台,shareSDK是一个很成熟的第三方分享平台,提供了非常方便的接口,虽然官方给出了集成文档,但是还是有一些不明确的地方。现在分享给大家,如何集成简单的新浪微博分享。


第一步:去官网注册成为开发者

  • 传送地址:ShareSDK

  • 公司名称可以随意填写,其他基本信息要正确填写


第二步:进入后台创建应用获取App Key





  • 获取App Key,后期会使用到

第三步:下载SDK并将解压后的文件夹拖到项目中


  • 勾选新浪微博

  • 将文件解压后拖到项目中
  • 注意:
    • 请务必在上述步骤中选择“Create groups for any added folders”单选按钮组。
    • 如果你选择“Create folder references for any added folders”,一个蓝色的文件夹引用将被添加到项目并且将无法找到它的资源。

第四步:添加依赖库


必须添加的依赖库(Xcode 7 之后 .dylib库后缀名更改为.tbd)

  • libicucore.dylib
  • libz.dylib
  • libstdc++.dylib
  • JavaScriptCore.framework

添加新浪微博SDK依赖库

  • ImageIO.framework
  • libsqlite3.dylib

第五步:前往新浪开发平台申请App Key


  • 填写基本信息

  • 创建成功后即可获得App Key 以及App Secret(后面会用到这两个东西)
  • 另外在该页面需要填写好所有带 * 的选项

  • 进行授权设置

第六步:打开工程中的AppDelegate.m文件和info.plist进行配置

  • 首先在AppDelegate.m中导入头文件
#import "AppDelegate.h"
#import <ShareSDK/ShareSDK.h>
#import <ShareSDKConnector/ShareSDKConnector.h>
#import "WeiboSDK.h"
  • 在- (BOOL)application: didFinishLaunchingWithOptions:方法中调用registerApp方法来初始化SDK并且初始化第三方平台

  • 传送地址:各平台申请AppKey地址汇总

  • 代码

    [ShareSDK registerApp:@"填写在ShareSDK平台申请的App Key"
     
          activePlatforms:@[
                            @(SSDKPlatformTypeSinaWeibo)
                           ]
                 onImport:^(SSDKPlatformType platformType)
     {
         switch (platformType)
         {

             case SSDKPlatformTypeSinaWeibo:
                 [ShareSDKConnector connectWeibo:[WeiboSDK class]];
                 break;

             default:
                 break;
         }
     }
          onConfiguration:^(SSDKPlatformType platformType, NSMutableDictionary *appInfo)
     {
         
         switch (platformType)
         {
             case SSDKPlatformTypeSinaWeibo:
                 //设置新浪微博应用信息,其中authType设置为使用SSO+Web形式授权
                 [appInfo SSDKSetupSinaWeiboByAppKey:@"填写在新浪微博开发平台申请的App Key"
                                           appSecret:@"填写在新浪微博开发平台申请的App Secret"
                                         redirectUri:@"http://www.weibo.com" // 这里不要乱写,否则会无法对跳转到微博登录页面
                                            authType:SSDKAuthTypeBoth];
                 break;

             default:
                 break;
         }
     }];
  • 配置info.plist文件

第七步:在需要分享的页面进行设置

  • 例如在该界面的rightBarButtonItem对应的action方法中写如下的代码
#pragma mark - shareButotn Action

- (void)shareAction:(UIBarButtonItem *)shareButton {
    //1、创建分享参数
    // 注意:如果要分享本地图片,必须要在Xcode左边目录里面,并且名称必须要传正确,
    //      如果要分享网络图片,需要前往新浪微博开发平台申请高级读写权限,否则会报code=204的error
    // 备注:分享网络图片的写法,@[@"http://cms-bucket.nosdn.127.net/catchpic/2/21/2122f33b01798096b7a8041e3736c2f2.jpg"])
    
    // 分享的图片数组
    NSArray* imageArray = @[[UIImage imageNamed:@"shareWeibo"]];

    if (imageArray) {
        
        NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
        [shareParams SSDKSetupShareParamsByText:[NSString stringWithFormat:@"%@ \\n\\n 来自:Sugar Plus", _shareLink]
                                         images:nil // 如果不想分享图片,填写nil即可
                                            url:nil
                                          title:@"分享标题"
                                           type:SSDKContentTypeAuto];
        //2、分享(可以弹出我们的分享菜单和编辑界面)
        [ShareSDK showShareActionSheet:nil //要显示菜单的视图, iPad版中此参数作为弹出菜单的参照视图,只有传这个才可以弹出我们的分享菜单,可以传分享的按钮对象或者自己创建小的view 对象,iPhone可以传nil不会影响
                                 items:nil
                           shareParams:shareParams
                   onShareStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) {
                       
                       switch (state) {
                           case SSDKResponseStateSuccess:
                           {
                               UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"分享成功"
                                                                                   message:nil
                                                                                  delegate:nil
                                                                         cancelButtonTitle:@"确定"
                                                                         otherButtonTitles:nil];
                               [alertView show];
                               break;
                           }
                           case SSDKResponseStateFail:
                           {
                               UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"分享失败"
                                                                               message:[NSString stringWithFormat:@"%@",error]
                                                                              delegate:nil
                                                                     cancelButtonTitle:@"OK"
                                                                     otherButtonTitles:nil, nil];
                               [alert show];
                               break;
                           }
                           default:
                               break;
                       }
                   }
         ];}
}

  • 如果想分享网络图片需要前往新浪微博开发平台打开高级读写权限
  • 想使用高级权限的前提是你的应用通过新浪微博的审核
  • 需要完善如下信息

附带:效果图

  • 点击rightBarButton后首先弹出一个sheet

  • 配置需要分享的内容(可以自己更改)

  • 第一次分享会弹出一个webView要求登录微博,以后再分享无需登录

  • 分享成功后提示框

  • 微博端效果图
  • 由于没有填写那一大堆认证信息,所以显示的是 未通过审核应用

最后

如果大家想集成更多的三方平台分享,可以去查看更完整的shareSDK官方文档。希望我的分享能够帮到你。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容