使用Share Sdk 实现第三方登录和分享

导语:什么是ShareSDK

ShareSDK是一种社会化分享组件,为iOS、Android、WP8 的APP提供社会化功能,集成了一些常用的类库和接口,缩短开发者的开发时间,还有社会化统计分析管理后台。ShareSDK移动开发者服务平台由 广州掌淘网络科技有限公司开发。
支持包括QQ、微信、新浪微博、腾讯微博、开心网、人人网、豆瓣、网易微博、搜狐微博、facebook、twitter、google+等国内外40多家的主流社交平台,帮助开发者轻松实现社会化分享、登录、关注、获得用户资料、获取好友列表等主流的社会化功能,强大的统计分析管理后台,可以实时了解用户、信息流、回流率、传播效率等数据,有效地指导移动APP的日常运营与推广,同时为APP引入更多的社会化流量。

具体实现操作步骤如下:

1、在share官网注册应用生成AppKey并下载SDK     网址:http://www.shareSDK.cn

2、在新浪微博平台注册应用生成AppId和AppKey    网址:http://open.weibo.com

3、导入SDK包。

4、配置:需要配置AndroidManifest.xml和assets里面的ShareSDKDevInfor.xml和(后面有示例介绍)

5、添加代码实现登录、获取信息、分享等功能(见下面示例)。


借助Share SDK开发:

1、获取Share SDKappKey

a、在Share SDK官网注册

注册后创建应用,创建成功后就会获得Share SDK分配的appKey 和 App Secret

2、在我们的项目中注册开发者的信息

<?xml version="1.0" encoding="utf-8"?>
<DevInfor>    
<!--说明:        
1、表格中的第一项    
<ShareSDK AppKey="api20" />是必须的,其中的AppKey是你在Share SDK上注册的开发者帐号的AppKey         
2、所有集成到你项目的平台都应该为其在表格中填写相对应的开发者信息,
以新浪微博为例:         
<SinaWeibo                
SortId="此平台在分享列表中的位置,由开发者自行定义,可以是任何整型数字,数值越大越靠后"                
AppKey="填写你在新浪微博上注册的AppKey"                
AppSecret="填写你在新浪微博上注册到的AppKey"                
Id="自定义字段,整形,用于你项目中对此平台的识别符"                
RedirectUrl="填写你在新浪微博上注册的RedirectUrl" />               

各个平台注册应用信息的地址如下:     
新浪微博:http://open.weibo.com
腾讯微博:http://dev.t.qq.com
QQ空间:http://connect.qq.com/intro/login/
网易微博:http://open.t.163.com
搜狐微博:http://open.t.sohu.com
豆瓣:http://developers.douban.com
人人网:http://dev.renren.com
开心网:http://open.kaixin001.com Instapaper:http://www.instapaper.com/main/request_oauth_consumer_token
有道云笔记:http://note.youdao.com/open/developguide.html#app facebook:https://developers.facebook.com twitter:https://dev.twitter.com


搜狐随身看:https://open.sohu.com
QQ好友分享:http://mobile.qq.com/api/
微信:http://open.weixin.qq.com-->       
<ShareSDK         AppKey = "api20"/> 
<!-- AppKey="104972cdd48" "23a9371d3a8"-->        
<SinaWeibo        
SortId="1"        
AppKey="3201194191"        
AppSecret="0334252914651e8f76bad63337b3b78f"        
Id="1"        
RedirectUrl="http://appgo.cn" />     

<TencentWeibo        
SortId="2"        
AppKey="801307650"        
AppSecret="ae36f4ee3946e1cbb98d6965b0b2ff5c"        
RedirectUri="http://sharesdk.cn"        
Id="2" />     

<QZone        
SortId="3"        
AppId="100371282"       
AppKey="aed9b0303e3ed1e27bae87c33761161d"        
Id="3"        
RedirectUrl="http://www.shareSDK.cn" />           
<Renren        
SortId="4"        
AppId="226427"        
ApiKey="fc5b8aed373c4c27a05b712acba0f8c3"        
Id="4"        
SecretKey="f29df781abdd4f49beca5a2194676ca4" />         

</DevInfor>
3、mainfest注册第三方平台登录与分享的activity
登录:
<!--
为了授权操作可以顺利完成,需要在application下注册下面的Activity
 AuthorizeActivity的路径是固定的,一定要在“cn.sharesdk.framework”下,因为他在Share-Core包中
-->
<activity            
android:name="cn.sharesdk.framework.AuthorizeActivity"
android:configChanges="keyboardHidden|orientation"
android:screenOrientation="portrait"            
android:theme="@android:style/Theme.Translucent.NoTitleBar"            
android:windowSoftInputMode="stateHidden|adjustResize" >
</activity>

分享:
<!-- 
快捷分享是ShareSDK提供的一套基于其接口的GUI。通过简单的配置,可以在不考虑平台的情况下,调用很少的代码,就完成分享的操作。快
捷分享的jar包放在SDK解压目录的"Libs\ShareSDK-GUI"中,叫做"cn.sharesdk.oneshare.jar"。快捷分享使用了两个Activity,需要在
AndroidManifest.xml中注册这两个Activity:
-->
<activity
android:name="cn.sharesdk.onekeyshare.ShareAllGird"
android:configChanges="keyboardHidden|orientation"
android:screenOrientation="portrait"            
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name="cn.sharesdk.onekeyshare.SharePage"
android:configChanges="keyboardHidden|orientation"
android:screenOrientation="portrait"            
android:theme="@android:style/Theme.Translucent.NoTitleBar"            
android:windowSoftInputMode="stateHidden|adjustResize" />


4.接着要导入ShareSDK和对应第三平台的SDK,导入第三方包,只实现新浪微博授权登录分享的话只需要导入ShareSDK-Core.jar(核心包)、ShareSDK-SinaWeibo.jar(新浪微博)、cn.sharesdk.onekeyshare.jar(快捷分享)。

5.Share SDK的快捷分享图文其实很简单,用起来很方便,首先就是注册分享界面的activity当你要分享时调用这个方法就可以了,部分代码如下:

/**
* 使用快捷分享完成图文分享
*/
private void showGrid(boolean silent) {
Intent i = new Intent(this, ShareAllGird.class);
// 分享时Notification的图标
i.putExtra("notif_icon", R.drawable.ic_launcher);
// 分享时Notification的标题
i.putExtra("notif_title", this.getString(R.string.app_name));
// title标题,在印象笔记、邮箱、信息、微信(包括好友和朋友圈)、人人网和QQ空间使用,否则可以不提供
i.putExtra("title", this.getString(R.string.share));
// titleUrl是标题的网络链接,仅在人人网和QQ空间使用,否则可以不提供
i.putExtra("titleUrl", "http://sharesdk.cn");
// text是分享文本,所有平台都需要这个字段
i.putExtra("text", this.getString(R.string.share_content));
// imagePath是本地的图片路径,所有平台都支持这个字段,不提供,则表示不分享图片
i.putExtra("imagePath", MainActivity.TEST_IMAGE);
// url仅在微信(包括好友和朋友圈)中使用,否则可以不提供
i.putExtra("url", "http://sharesdk.cn");
// thumbPath是缩略图的本地路径,仅在微信(包括好友和朋友圈)中使用,否则可以不提供
i.putExtra("thumbPath", MainActivity.TEST_IMAGE);
// appPath是待分享应用程序的本地路劲,仅在微信(包括好友和朋友圈)中使用,否则可以不提供
i.putExtra("appPath", MainActivity.TEST_IMAGE);
// comment是我对这条分享的评论,仅在人人网和QQ空间使用,否则可以不提供
i.putExtra("comment", this.getString(R.string.share));
// site是分享此内容的网站名称,仅在QQ空间使用,否则可以不提供
i.putExtra("site", this.getString(R.string.app_name));
// siteUrl是分享此内容的网站地址,仅在QQ空间使用,否则可以不提供
i.putExtra("siteUrl", "http://sharesdk.cn");
// 是否直接分享
i.putExtra("silent", silent);
this.startActivity(i);}

至此, 使用Share Sdk 实现第三方登录和分享讲解的就差不多了, 谢谢!
1 2 3 4 5 $sharesdk.shareContent($sharesdk.platformID.SinaWeibo, params, function (platform, state, shareInfo, error) { alert("state = " + state + "\nshareInfo = " + shareInfo + "\nerror = " + error); }); 一键分享 1 2 3 4 5 $sharesdk.oneKeyShareContent([$sharesdk.platformID.SinaWeibo, $sharesdk.platformID.TencentWeibo], params, function (platform, state, shareInfo, error) { alert("state = " + state + "\nshareInfo = " + shareInfo + "\nerror = " + error); }); 关于具体的分享参数名称,请参考“不同平台分享内容的详细说明”章节的说明。 用户授权 调用ShareSDK中的authorize方法可进行用户授权。代码如下: 1 2 3 4 5 $sharesdk.authorize($sharesdk.platformID.SinaWeibo, function (platform, state, error){ alert("state = " + state + "\nerror = " + error); }); 获取用户资料 调用ShareSDK中的getUserInfo来获取授权用户的信息。代码如下: 1 2 3 4 5 $sharesdk.getUserInfo($sharesdk.platformID.SinaWeibo, function (platform, state, user, error) { alert("state = " + state + "\nuser = " + user + "\nerror = " + error); }); iOS部分集成步骤(不发布iOS版本可略过此部分) 导入JS桥接的iOS版本组件 打开下载的JS包里的iOS/ShareSDKForJS/ShareSDKForJS.xcodeproj项目工程,选择ShareSDKForJS静态库运行Xcode,如图: 700px-js_doc_001.png 运行成功之后,请大家打开文件找到Build文件夹,然后进入文件中找到build/Products/Debug-iphonesimulato /libShareSDKForJS.a文件以及找到build/Products/Debug-iphonesimulator/usr/local /include/ShareSDKJSBridge.h这个文件,再将libShareSDKForJS.a和ShareSDKJSBridge.h这 2个文件导入到你的项目里,如图 700px-js_doc_002.png 注意:(如果在分享中弹不出分享的菜单,如果大家的ShareSDK.js文件是本地的,要把这个加到Build Phases里面的Copy Bundle Resources选项) 下载iOS版本ShareSDK,并导入到工程中。 登录ShareSDK的官方网站下载并解压最新版本的SDK。如果您还尚未下载,请 点击这里下载 或者访问 http://sharesdk.cn/Download 。解压后如图所示: 700px-js_doc_003 将ShareSDK导入工程中,并添加相应的依赖库。此步骤可以参考:《iOS快速集成指南》中的第一、第二步。执行完成后,如下图所示: 700px-js_doc_004.png 为UIWebView添加消息捕获 先导入ShareSDKJSBridge.h头文件。 1 #import "ShareSDKJSBridge.h" 然后给UIWebView设置一个委托对象,如: 1 webView.delegate = self; 注意:webView是UIWebView的对象实例。 最后实现shouldStartLoadWithRequest委托方法,并在方法中加入JSBridge的captureRequest方法,代码如下: 1 2 3 4 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { return ![[ShareSDKJSBridge sharedBridge] captureRequest:request webView:webView]; } 添加完毕后就可以对工程进行运行测试。 Android部分集成步骤(不发布Android版本可略过此部分) 导入的步骤如下: 1、参考”安卓快速集成文档“章节的说明,导入ShareSDK for Android的jar库和图片、文字资源。 2、复制github上的jsdemo项目中”cn.sharesdk.js”包中的源代码复制到你的项目中。QQ截图20150304142013 3、在您WebView加载页面地址之前。调用ShareSDKUtils.prepare(webview, webviewClient); 请注意,ShareSDKUtils.prepare方法要在WebView.setWebViewClient(WebViewClinet);之后调用,而且此后不能再调用setWebViewClient方法,否则ShareSDK的初始化操作可能失败。 下面的代码来自github上的demo: Objective-C 1 2 3 4 5 6 7 8 9 10 11 12 public class MainActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); WebView wvBody = new WebView(this); WebViewClient wvClient = new WebViewClient(); wvBody.setWebViewClient(wvClient); wvBody.setWebChromeClient(new WebChromeClient() { public boolean onJsAlert(WebView view, String url, String message, JsResult result) { return super.onJsAlert(view, url, message, result); } });
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值