iOS UMSocial:createSocialAction uid is (null)解决

写在前面

公司客服反馈APP分享功能出现404错误。

一.查找问题

友盟社交化组件(sdk)版本太旧,须更新升级;
腾讯微博须认证授权;
新浪微博须认证授权。

二.调试问题

delete项目中之前的sdk4.4老版本,导入umeng_ios_social_sdk_5.2.1_arm64_custom最新sdk。相关代码设置如下:

AppDelegate.h

#import "UMSocial.h"
#import "UMSocialWechatHandler.h"
#import "UMSocialQQHandler.h"
#import "UMSocialSinaSSOHandler.h"
#import "SudokuViewController.h"

AppDelegate.m

#pragma -mark UMSocial
- (void)setUMSocial
{
    [UMSocialData setAppKey:appKey_umsocial];
}
- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation
{
    BOOL result = [UMSocialSnsService handleOpenURL:url];
    if (result == FALSE) {
        //调用其他SDK,例如支付宝SDK等。接收并处理交易结果,
        
    }
    return result;
}

调用的viewcontroller里面,.h文件里面实现如下协议

#import <UIKit/UIKit.h>
#import "AppDelegate.h"
@interface MoreViewController : UIViewController<UMSocialUIDelegate,UMSocialDataDelegate>
{
    ......
}

.m文件里面代码如下

[self setupUMShare]; //放在你要调用的地方

#pragma -mark UMSocial
-(void)setupUMShare
{
    //设置微信AppId、appSecret,分享url
    [UMSocialWechatHandler setWXAppId:appID_weixin appSecret:appSecret_weixin url:url_share];
    //当分享消息类型为图文时,点击分享内容会跳转到预设的链接
    [UMSocialData defaultData].extConfig.wechatSessionData.url = url_share;
    //微信好友
    [UMSocialData defaultData].extConfig.wechatSessionData.title = title_share;
    //朋友圈
    [UMSocialData defaultData].extConfig.wechatTimelineData.url = url_share;
    [UMSocialData defaultData].extConfig.wechatTimelineData.title = title_share;
    [UMSocialData defaultData].extConfig.wxMessageType = UMSocialWXMessageTypeImage;
    //应用分享类型如果用户已经安装应用,则打开APP,如果为安装APP,则提示未安装或跳转至微信开放平台
    [UMSocialData defaultData].extConfig.wxMessageType = UMSocialWXMessageTypeApp;
    
    //设置分享到QQ/Qzone的应用Id,和分享url 链接
    [UMSocialQQHandler setQQWithAppId:appID_qq appKey:appKey_qq url:url_share];
    [UMSocialData defaultData].extConfig.qqData.url = url_share;
    [UMSocialData defaultData].extConfig.qqData.title = title_share;
    [UMSocialData defaultData].extConfig.qzoneData.url = url_share;
    [UMSocialData defaultData].extConfig.qzoneData.title = title_share;
    
    
    
    //第一个参数为新浪appkey,第二个参数为新浪secret,第三个参数是新浪微博回调地址,这里必须要和你在新浪微博后台设置的回调地址一致。
    [UMSocialSinaSSOHandler openNewSinaSSOWithAppKey:appKey_sina
                                              secret:appSecret_sina
                                         RedirectURL:redirectURL_sina];
    
    
    [UMSocialSnsService presentSnsIconSheetView:self
                                         appKey:appKey_umsocial
                                      shareText:text_share
                                     shareImage:[UIImage imageNamed:imgName_share]
                                shareToSnsNames:@[UMShareToWechatSession,UMShareToWechatTimeline,UMShareToSina,UMShareToQQ,UMShareToQzone,UMShareToTencent]
                                       delegate:self];
}

-(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response
{
    //根据`responseCode`得到发送结果,如果分享成功
    if(response.responseCode == UMSResponseCodeSuccess)
    {
        //得到分享到的平台名
        NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]);
    }
}
-(void)didFinishGetUMSocialDataResponse:(UMSocialResponseEntity *)response
{
    
}

相关配置

URL scheme配置
兼容iOS9 https设置
回调设置,这个要设置,不然会出现点击qq分享或者是别的分享没有反应或者奔溃的错误

三.问题解决

如图添加-ObjC参数,回车,确保添加成功,ok(问题具体解决过程还是花了一段时间,现在忘了具体还遇到什么问题,但是问题解决结果就是这样的。有时候看上去很难得问题,或者是感觉解决不了的问题,请不要灰心,既然出现问题,就一定可以解决问题,要坚持,哈哈,再一次提醒自己,不轻易说放弃。不好意思,啰嗦了。)

特别注意

友盟最新集成文档
请注意以下红色提示

集成的时候仔细看看清这句话哦,本人就不小心看成了-Objct之后导致出错,之后网上各种搜索,问友盟技术,最后又反过来看这个集成文档,才恍然大悟,大大的鄙视自己呀。以后一定要细心认真!(后期会记录更新一篇编译参数-ObjC,-all_load,-force_load异同点的文章)

end

大概就这些,希望对你有帮助,不喜勿喷哦~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,822评论 25 709
  • jiaModuleDemo项目是为了解决关于项目中如何进行模块化开发而编写的实例,包含如何进行路由式、本地模块间交...
    icc_tips阅读 2,478评论 1 17
  • 1 简介 现如今几乎所有人都有社交账号和社交App,而分享功能也几乎随处可见。本文的目的在于介绍分享功能的基本实现...
    Cloudox_阅读 1,304评论 0 3
  • 你有没有过以下这样的经历? 工作上埋头苦干天天加班,升职加薪的却是别人;很想融入某个群体但总是被边缘化;你努力的追...
    松青月冷阅读 2,066评论 0 4
  • 每天晒晒太阳 每夜赏赏星光 晨起走走碎步 睡前呷呷姜汤 读一卷书 行一里路 饮一杯茶 约一挚友 畅一感悟 诗意的活...
    旖旎i阅读 231评论 4 16