关于集成:

官网集成介绍

在manifest里添加
xmlns:tools="http://schemas.android.com/tools"

在application里添加
tools:replace="android:name"

如果您没有在AndroidManifest中设置appliaction的类名,MobSDK会将这个设置为com.mob.MobApplication,但如果您设置了,请在您自己的Application类中调用:
MobSDK.init(this);
在build.gradle(Project)里面dependencies层级下添加
//ShareSDK 集成需要添加的
classpath "com.mob.sdk:MobSDK:2018.0319.1724"

在build.gradle(APP)里面添加
//ShareSDK 集成需要添加的
apply plugin: 'com.mob.sdk'

在build.gradle(APP)里面添加(跟android块是同级的,不要添加到android块里面)
//ShareSDK 集成需要添加的
MobSDK {appKey "XXX"appSecret "XXX"ShareSDK {//平台配置信息devInfo {Wechat {appId "XX"appSecret "XX"}QQ {appId "XX"appKey "XX"shareByAppClient true}}}

配置第三方平台参数:

//ShareSDK 集成需要添加的
MobSDK {appKey "XXX"appSecret "XXXX"ShareSDK {//平台配置信息devInfo {//配置分享微信好友Wechat {appId "appId "appSecret "appSecret "}//配置分享微信朋友圈WechatMoments{appId "appId "appSecret "appSecret "}}}
}
其中Wechat字段名代表微信,WechatMoments字段名代表微信朋友圈,更多的平台对应字段名对照以下信息

官网配置字段说明

关于分享: 

使用ShareSDK自带的UI弹出分享:

                OnekeyShare oks = new OnekeyShare();oks.disableSSOWhenAuthorize();oks.setShareContentCustomizeCallback(new ShareContentCustomizeCallback() {@Overridepublic void onShare(Platform platform, cn.sharesdk.framework.Platform.ShareParams paramsToShare) {if ("Wechat".equals(platform.getName())) {//点击微信分享paramsToShare.setTitle("标题");paramsToShare.setText("我是共用的参数,这几个平台都有text参数要求,提取出来啦");paramsToShare.setImageUrl("http://scene3d.4dage.com/images/imagesZrbrfZzI/thumbSmallImg.jpg?m=7");paramsToShare.setUrl("http://sharesdk.cn");paramsToShare.setShareType(Platform.SHARE_WEBPAGE);}if ("WechatMoments".equals(platform.getName())) {//点击朋友圈分享paramsToShare.setTitle("标题");paramsToShare.setText("我是共用的参数,这几个平台都有text参数要求,提取出来啦");paramsToShare.setImageUrl("https://hmls.hfbank.com.cn/hfapp-api/9.png");paramsToShare.setUrl("http://baidu.com");paramsToShare.setShareType(Platform.SHARE_WEBPAGE);}}});oks.setCallback(new PlatformActionListener() {@Overridepublic void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {Log.d("ShareLogin", "onComplete ---->  分享成功");}@Overridepublic void onError(Platform platform, int i, Throwable throwable) {Log.d("ShareLogin", "onComplete ---->  分享失败");}@Overridepublic void onCancel(Platform platform, int i) {Log.d("ShareLogin", "onCancel ---->  分享取消");}});// 启动分享GUIoks.show(this);
上面回调中的Wechat,以及WechatMoments分别代表Gradle里面devInfo配置的字段,弹出分享框里面的可选择分享也对应devInfo里面的配置,只配置一个就只显示微信devInfo {//配置分享微信好友Wechat {appId "appId "appSecret "appSecret "}//配置分享微信朋友圈WechatMoments{appId "appId "appSecret "appSecret "}}

自定义分享界面:

自定义好UI以后,点击不同的平台图标,弹到不同的分享客户端Platform.ShareParams sp = new Platform.ShareParams();sp.setText("测试分享的文本");
//                sp.setImagePath("/mnt/sdcard/测试分享的图片.jpg");Platform tw = ShareSDK.getPlatform("Wechat");sp.setImageUrl("http://scene3d.4dage.com/images/imagesZrbrfZzI/thumbSmallImg.jpg?m=7");sp.setUrl("http://www.baidu.com");sp.setTitle("我是title");sp.setText("我是共用的参数,这几个平台都有text参数要求,提取出来啦");sp.setShareType(Platform.SHARE_WEBPAGE);// 设置分享事件回调tw.setPlatformActionListener(new PlatformActionListener() {@Overridepublic void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {ToastUtils.showLongToast(LoginActivity.this, "分享成功");}@Overridepublic void onError(Platform platform, int i, Throwable throwable) {ToastUtils.showLongToast(LoginActivity.this, "分享错误");}@Overridepublic void onCancel(Platform platform, int i) {ToastUtils.showLongToast(LoginActivity.this, "分享取消");}});// 执行分享tw.share(sp);上面ShareSDK.getPlatform("Wechat");里面的参数Wechat对应devInfo里面配置的字段,Wechat代表弹出到微信devInfo {//配置分享微信好友Wechat {appId "appId "appSecret "appSecret "}//配置分享微信朋友圈WechatMoments{appId "appId "appSecret "appSecret "}}

常用分享参数:

字段名称 描述
text 待分享的文本
imagePath 待分享的本地图片。如果目标平台使用客户端分享,此路径不可以在/data/data下面
filePath 待分享的文件路径。这个用在Dropbox和Wechat中
title 分享内容的标题
notebook 存放笔记的笔记本,如果不存在,会创建。一般用在印象笔记等“笔记类”平台中
stack 印象笔记中的字段,用于归类笔记本
resource 印象笔记中的字段,数组,暂时支持String类型和File类型的元素。如果想一次发送多个文本和图片,需要使用这个字段
tags 标签,数组,部分平台支持为分享内容设置标签,可以使用这个字段
isPublic 印象笔记和flickr的字段,表示是否公开
isFriend flickr和VK的字段,表示是否公开给自己的朋友
isFamily flickr的字段,表示是否公开给自己的家人
safetyLevel flickr的字段,表示安全级别:1为安全级、2为辅导级、3为限制级
contentType flickr的字段,表示相册类型:1为相片、2为屏幕截图、3为其他
hidden flickr的字段,表示是否隐藏图片
venueName foursquare的字段,表示分享位置的名称
venueDescription foursquare的字段,表示分享位置的描述
latitude 分享位置的维度
longitude 分享位置的经度
imageUrl 待分享的网络图片
comment 对分享内容的评价。区别于text,评论一般共应用的用户自己填写,部分平台支持此字段
titleUrl 分享内容标题的链接地址
url 分享内容的url、在微信和易信中也使用为视频文件地址
address 邮箱地址或者短信电话号码,一般在邮箱或者短信中使用
site QQ空间的字段,标记分享应用的名称
siteUrl QQ空间的字段,标记分享应用的网页地址
gropuId VK的字段,表示图片所属的组ID。如果不设置此字段,ShareSDK会将组ID设置为ShareSDK所在的组
extInfo Wecaht的字段,分享应用时,可以选择分享二进制文件或者脚本,此字段用来设置分享应用中的脚本
shareType 微信和易信的字段,分享内容的类型: 分别为Platform.SHARE_TEXT(分享文本), Platform.SHARE_IMAGE(分享图片), Platform.SHARE_WEBPAGE(分享网页,既图文分享), Platform.SHARE_MUSIC(分享音频), Platform.SHARE_VIDEO(分享视频), Platform.SHARE_APPS(分享应用,仅微信支持), Platform.SHARE_FILE(分享文件,仅微信支持) Platform.SHARE_EMOJI(分享表情,仅微信支持)
musicUrl 微信和易信的字段,分享音频时的音频文件网络地址
imageData 微信和易信的字段,各类分享内容中的图片bitmap对象,可以替代imagePatd或者imageUrl
autdor 有道云笔记的字段,表示分享内容的作者
customFlag 自定义分享标签

分享类型:

分享文本 shareType(Platform.SHARE_TEXT) title text
分享图片 shareType(Platform.SHARE_IMAGE) title text(设置了不会显示,可选参数) imagePath
imageUrl
imageData
分享音乐 shareType(Platform.SHARE_MUSIC) title text(朋友圈不显示此字段) imagePath musicUrl url(消息点击后打开的页面)
imageUrl
imageData
分享视频 shareType(Platform.SHARE_VIDEO) title text(朋友圈不显示此字段) imagePath url(视频网页地址)
imageUrl
imageData
分享网页 shareType(Platform.SHARE_WEBPAGE) title text(朋友圈不显示此字段) imagePath url
imageUrl
imageData
分享文件 shareType(Platform.SHARE_FILE) title text(朋友圈不显示此字段) imagePath filePath
imageUrl
imageData
分享表情 shareType(Platform.SHARE_EMOJI) title text(朋友圈不显示此字段) imagePath
imageUrl
imageData
分享小程序 shareType(Platform.SHARE_WXMINIPROGRAM) title setWxUserName("小程序原始ID") setWxPath("小程序页面路径") url text imagePath
imageUrl
imageData

上述字段中和本地路径有关的,全部使用“Path”结尾,如imagePath;和网络路劲有关的,使用“Url”结尾,如imageUrl。本地图片最好使用后缀名,否则POST文件时,可能无法正确计算文件的MIME值,从而导致发送失败。

针对主流平台说明可以参考下面具体说明(非maven的集成方式)

上述字段中和本地路径有关的,全部使用“Path”结尾,如imagePath;和网络路劲有关的,使用“Url”结尾,如imageUrl。本地图片最好使用后缀名,否则POST文件时,可能无法正确计算文件的MIME值,从而导致发送失败。

分享参数官方文档(一)

分享参数官方文档(二)

关于登录:

Toast.makeText(MainActivity.this, "Wechat登录开始", Toast.LENGTH_SHORT).show();final Platform wechat = ShareSDK.getPlatform(Wechat.NAME);/*final Platform qq = ShareSDK.getPlatform(QQ.NAME);*//*final Platform sinaweibo = ShareSDK.getPlatform(SinaWeibo.NAME);*/if (wechat.isClientValid()) {//客户端可用}if (wechat.isAuthValid()) {wechat.removeAccount(true);}wechat.setPlatformActionListener(new PlatformActionListener() {@Overridepublic void onComplete(Platform platform, int i, final HashMap<String, Object> hashMap) {/*platform.getDb().exportData()获取用户数据*/Log.d("ShareSDK", "onComplete ---->  登录成功" + platform.getDb().exportData());platform.getDb().getUserId();// 这里授权成功跳转到程序主界面了}@Overridepublic void onError(Platform platform, int i, Throwable throwable) {Log.d("ShareSDK", "onError ---->  登录失败" + throwable.toString());Log.d("ShareSDK", "onError ---->  登录失败" + throwable.getStackTrace().toString());Log.d("ShareSDK", "onError ---->  登录失败" + throwable.getMessage());}@Overridepublic void onCancel(Platform platform, int i) {Log.d("ShareSDK", "onCancel ---->  登录取消");}});wechat.SSOSetting(false);wechat.showUser(null);

申请第三方配置:

申请微信配置:

微信开发者平台
https://open.weixin.qq.com

注意事项: 

微信会缓存包信息、或者appid等信息,若第一次没有调起登录、分享,修改appid等配置信息后,要去清除微信的缓存信息,否则会无效
md5分为发布版和开发板
最终打包一定要改回发布版的MD5,平常开发时需要改为开发版的MD5,否则会提示签名不一致

获取开发版和发布版的信息

集成ShareSDK相关推荐

  1. Mob之社会化分享集成ShareSDK

    接着上篇顺便分享一篇自己使用 ShareSDK 的笔记,上篇我们集成了 SMSSDK 完成了短信接收验证码的功能,请参考Mob 之 短信验证集成 SMSSDK,如何在项目已经集成 SMSSDK 的情况 ...

  2. Android集成ShareSDK第三方分享和登录

    本篇记录在Android平台上如何集成ShareSDK实现第三方登陆和分享,以及其中可能会遇到的坑. Mob官网 下载 如图选择你需要分享的平台: 集成 解压下载的文件,然后在ShareSDK for ...

  3. Android 集成ShareSDK实现三方登录

    ** 前言 ** 三方登录在如今差不多已经成为每一款App必备的功能了.每次集成都会遇到各种各样的问题,今天总结一下三方登录的流程,以免忘记.现在好像还没有专门的三方登录SDK,ShareSDK和友盟 ...

  4. quick-cocos 集成ShareSDK

    1.新建Android应用.获取App Key 和App Secret 2.下载SDK,选择相应的平台.下载后打开ShareSDK for Android文件夹,点击QuickIntegrater.j ...

  5. IOS项目集成ShareSDK实现第三方登录、分享、关注等功能

    快速集成 第一步:将下载的SDK解压后导入您的工程中,见下图(点击这里查看视频教程) 拖到工程中后弹出以下对话框,勾选"Copy items into destination group's ...

  6. Android 集成 ShareSdk 记录

    MobSdk 隐私协议: https://www.mob.com/wiki/detailed?wiki=share_hgzn&id=14 集成: https://www.mob.com/wik ...

  7. 集成ShareSDK,分享成功后QQ和空间回调不执行的可能原因

    AndroidMainifest.xml中的如箭头所示的id与assets下ShareSDK.xml中配置的QQ的AppId一定要相同. 转载于:https://www.cnblogs.com/rh1 ...

  8. iOS集成sharesdk遇到的坑

    分享新浪微博 ★★★分享新浪微博★★★ 前言: 写这个目地是为了记录那些过坑,直接先上效果图.大家看看如果你遇到了应该如果处理更好,因为刚一看到这个效果的时候就明白其实很简单不就是分享微博吧.但是要求 ...

  9. Unity集成ShareSDK一键分享

    1.首先在ShareSDK 官网下载http://mob.com/"ShareSDK社会化"分享插件,直接现在UnityforShareSDK. 2.解压,然后将ShareSDK导 ...

最新文章

  1. C# — 通过点击回车执行任务
  2. springboot 打卡功能_实战:如果让你用SpringBoot实现签到奖励的功能,你会怎么做?...
  3. Python培训:学完Python可以做什么?
  4. boost::timer::auto_cpu_timer相关的测试程序
  5. 拼接字符串的优雅方式
  6. Python3实现最小栈
  7. 《Python Cookbook 3rd》笔记(5.2):打印输出至文件中
  8. mysql innodb和myisam_Mysql InnoDB和MyISAM的区别
  9. java design pattern
  10. [APIO2009]抢掠计划
  11. Python2.5.4移植到arm-linux
  12. pytroch中的Variable()介绍
  13. JAVA发送邮件(163邮箱发送)
  14. Fortran95学习总结
  15. 外卖点餐系统源码|餐饮点餐源码开发
  16. vlan和静态路由配置实验
  17. 基于AT89C51单片机的电子万年历PROTEUS仿真设计
  18. 基因重组- 冲刺计划
  19. RationalDMIS7.1定制报告(Excel模板制作)
  20. 全国计算机科学与技术讲师电话,计算机科学与技术学院

热门文章

  1. Web基础与HTTP协议
  2. Question Answering论文(问答系统阅读理解)
  3. windows下编译bootst
  4. 情诗三首(仓央嘉措)
  5. 男人,改变了航空历史
  6. 国外家喻户晓的搜索引擎优化SEO工具商SEOmoz公司获$1800万融资
  7. 昌宜同方(武汉)租赁领域合作案例
  8. 世界第一的激光雷达企业如何造就?看 Velodyne 与 David Hall 的技术人生
  9. 春运到了,带你用python来抢票回家!
  10. SQL 视图,存储过程锁住了解锁的方法——最简单的方法