第三方登录及分享对于应用的重要性无须多言,本文运用SharkSDK集成到自己的项目中,实现该功能。
一 下载SDK:ShareSDK官网下载最新版本的SDK,下载地址:
http://share.sharesdk.cn/Download下好对应的SDK,有些简单的步骤就不一一介绍了。
二 集成ShareSDK:
1,解压SDK,得到目录结构为
,集成有三种方式,
1、直接复制jar包到目标项目libs目录直接复制jar和资源的方式,可以参考ShareSDK的Sample项目。
使用复制jar的方法,需要除了复制MainLibs/libs中的jar外,还需要复制MainLibs/res中图片和strings,否则会出现授权时找不到资源的问题。
而且如果您的项目也集成了快捷分享,还需要复制OneKeyShare/src中的源码、OneKeyShare/res中的资源,如果你的项目里没有android-support-v4的jar需要把OneKeyShare/libs下的android-support-v4的jar到您的项目中。
2 快速生成项目
由于直接复制jar包和资源的集成方式比较麻烦,ShareSDK提供了快速集成的程序,在Windows下可以直接双击执行,或Linux/Mac OS下通过终端启动执行
这个程序会自动搜集集成SDK所需要的jar和资源,完成以后可以通过复制目标目录中的文件到您项目中覆盖就行了。
极大简化了“直接复制jar和资源”这种集成方式的操作步骤。
对于你的项目是刚开发或者想写一个Demo测试ShareSDK功能,可以使用这种方法快速集成
3、项目引用
在SDK目录 中将你需要集成的功能导入eclispe中。
三 添加应用信息
有三种方式
第一种:在ShareSDK的应用管理后台中配置,使用此方法需要调用ShareSDK.init(context,你的应用在sharesdk注册时返回的AppKey)方法进行初始化,如果以后更改了注册信息可以直接从网上更改,而不用重新发布新版本进行更新。(优先级最高)。
第二种:通过代码配置“setPlatformDevInfo(String, HashMap<String, Object>)”方法,使用此方法需要调用ShareSDK.init(context,你的应用在sharesdk注册时返回的AppKey)方法进行初始化。(优先级中)。
第三种:通过“assets/ShareSDK.xml”文件来配置,次方式会以明文存在,但这种方式最为简单。(优先级最低)。
在这里我是通过第三种方式添加的,利用新浪微博作为例子。
<ShareSDK
[color=red]AppKey[/color]="填写您在ShareSDK上注册到的AppKey" />
<SinaWeibo
SortId="此平台在您分享列表中的位置,整型,数值越大越靠后"
[color=blue]AppKey[/color]="填写您在新浪微博上注册到的AppKey"
[color=blue]AppSecret[/color]="填写您在新浪微博上注册到的AppSecret"
Id="自定义字段,整型,用于您项目中对此平台的识别符"
RedirectUrl="填写您在新浪微博上注册的RedirectUrl"
ShareByAppClient="是否使用客户端进行分享"
Enable="布尔值,标记此平台是否有效" />
红色标记的Appkey需要在ShareSDK官网上注册创建应用得到,蓝色标记的则需要在新浪微博开放平台注册。这三者必须正确填写,此外在各开放平台创建应用时,需要填写包名及签名,这是在验证的时候需要用到,如果你的实际应用包名和签名与注册包名及签名不一致,是不能达到本文目的的。
四 配置AndroidManifest.xml
首先需要添加一些权限:
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
这些权限将允许您的项目和ShareSDK判断当前应用是否“前置”、获取连接网络的权限、获取您的设备网络状态的权限、实现https安全连接的权限、读取手机设备状态的权限和保存必要配置的权限。一般来说,即便不集成ShareSDK,大部分的项目也都会注册申请这些权限。
其次,为了授权操作可以顺利完成,需要在application下注册下面的Activity:
<activity
android:name="cn.sharesdk.framework.ShareSDKUIShell"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
五 添加代码
打开您项目的入口Activity,在其onCreate中插入下面的代码:
如果使用ShareSDK.xml方式配置调用ShareSDK.IinitSDK(this);
这样你已经在自己的项目里面集成了ShareSDK了,以下代码就是分享到新浪微博了。
ShareParams sp = new ShareParams();
sp.setText(“测试分享的文本”);
sp.setImagePath(“/mnt/sdcard/测试分享的图片.jpg”);
Platform weibo = ShareSDK.getPlatform(context, SinaWeibo.NAME);
weibo.setPlatformActionListener(paListener); // 设置分享事件回调
// 执行图文分享
weibo.share(sp);
其它的功能,比如SSO,一键分享等不做详细介绍,可以查看ShareSDK API。
因为写的比较匆促,可能介绍的不够详细,所以在最后一一附上一些有用的地址,感兴趣的可以参照文档介绍来实现你自己的demo。
ShareSDK集成http://wiki.sharesdk.cn/Android_快速集成指南
微博API Help/error :
http://open.weibo.com/wiki/Help/error
这个地址方便于调试代码,我当时就是因为没找到这个API,所以报错了也不知道什么原因,如果操作,比如分享失败,系统会返回一个error-code,根据出错的error-code对应该API找出原因。
各个平台注册应用信息的地址如下:
新浪微博
http://open.weibo.com
腾讯微博
http://dev.t.qq.com
QQ空间
http://connect.qq.com/intro/login/
微信好友
http://open.weixin.qq.com
Facebook
https://developers.facebook.com
Twitter
https://dev.twitter.com
人人网
http://dev.renren.com
开心网
http://open.kaixin001.com
搜狐微博
http://open.t.sohu.com
网易微博
http://open.t.163.com
豆瓣
http://developers.douban.com
有道云笔记
http://note.youdao.com/open/developguide.html#app
印象笔记
https://dev.evernote.com/
Linkedin
https://www.linkedin.com/secure/developer?newapp=
FourSquare
https://developer.foursquare.com/
搜狐随身看
https://open.sohu.com/
Flickr
http://www.flickr.com/services/
Pinterest
http://developers.pinterest.com/
Tumblr
http://www.tumblr.com/developers
Dropbox
https://www.dropbox.com/developers
Instagram
http://instagram.com/developer#
VKontakte
http://vk.com/dev