android shareSDK 微博分享案例

 

[置顶] android shareSDK 微博分享案例

分类: Android   11694人阅读  评论(4)  收藏  举报
android shareSDK 微博分享案例

ShareSDK
APP_KEY 219b1121fc68


腾讯微博
key 801517904
secret bfba83ae253c8f38dabe22c5fa4093bd




新浪微博
key 3815341537
secret f19fb8f89acc090716de7e3bde2e5f9e
回调页:https://api.weibo.com/oauth2/default.html
包名+keySotre签名:91f05bce6758f1a1e870a4f3fa5f871b


-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

准备阶段:


使用ShareSDK步骤
1. ShareSDK官网,创建应用 获取Key
2. ShareSDK官网,下载SDK
3. 使ShareSDK的DEMO正常运行
(类库:ShareSDK for Android
  demo:ShareSDK for Android Sample)
4.创建新的项目
5.去各平台注册key
新浪微博:
 a.证书签名需要个人证书导出项目时获取到
MD5 : 91:F0:5B:CE:67:58:F1:A1:E8:70:A4:F3:FA:5F:87:1B
证书格式为小写字母并不含:
91f05bce6758f1a1e870a4f3fa5f871b
 b. 授权回调页:https://api.weibo.com/oauth2/default.html

6.sample里所有的图片以及values拷入当前新的项目: 

此时需要修改 main_activity.xml  and  menu.xml 中跟 @String/ 有关的信息!

7.sample里asset里Sharesdk.xml拷入当前新的项目,并且修改指定内容
RedirectUrl:如果指定授权回调页,就填写回调页,如没有,就填写应用网址
8.需要把sample里mainifest中的权限拷入当前新的项目
9.sample里mainifest中的ShareSDKUIShell,activity注册到当前新的项目中,代码如下:
<activity
android:name="cn.sharesdk.framework.ShareSDKUIShell"
android:theme="@android:style/Theme.Translucent.NoTitleBar"android:configChanges="keyboardHidden|orientation|screenSize"android:windowSoftInputMode="stateHidden|adjustResize" >
 </activity>
 10.拷入需要用到的jar包
 必拷:mframework.jar
 必拷:ShareSDK-Core-2.3.8jar

 分享指定平台:
 ShareSDK-XXX.jar

 11.将onkeyshare包拷贝到当前项目中


分享步骤:

 ***************************
 1.初始化ShareSDK
 ShareSDK.init(this);
 2.设置指定平台
 Platform p=ShareSDK.getPlatform(XXX.NAME);
 3.设置平台监听器
 p.setPlatform
 AcitonListener{
  1.error
  2.complete
  3.cancel
 }
 4.进行授权
 p.rauthorize();
 5.重写平台监听器中的complete
 获取某平台参数对象
 Platform.ShareParams ps=
 new XXX.ShareParams();
 添加要分享的数据
 ps.setText/setImageUrl/set..
 分享

 p.share(ps);



分享案例代码:

[html]  view plain copy print ?
  1. package com.example.lovesharesdkdemo;  
  2.   
  3. import java.util.HashMap;  
  4.   
  5. import android.app.Activity;  
  6. import android.os.Bundle;  
  7. import android.util.Log;  
  8. import android.view.Menu;  
  9. import android.view.View;  
  10. import android.view.View.OnClickListener;  
  11. import android.widget.TextView;  
  12. import cn.sharesdk.framework.Platform;  
  13. import cn.sharesdk.framework.PlatformActionListener;  
  14. import cn.sharesdk.framework.ShareSDK;  
  15. import cn.sharesdk.tencent.weibo.TencentWeibo;  
  16.   
  17. public class MainActivity extends Activity {  
  18.   
  19.     private Platform platform;  
  20.       
  21.     private TextView textView;  
  22.   
  23.     @Override  
  24.     protected void onCreate(Bundle savedInstanceState) {  
  25.         super.onCreate(savedInstanceState);  
  26.         setContentView(R.layout.activity_main);  
  27.         //1 初始化SDK  
  28.         ShareSDK.initSDK(getApplicationContext());  
  29.         //2.设置指定平台  
  30.         platform = ShareSDK.getPlatform(TencentWeibo.NAME);  
  31.         //3 获取组件  注册事件  
  32.         textView = (TextView) this.findViewById(R.id.buttton);  
  33.         textView.setOnClickListener(new OnClickListener() {  
  34.               
  35.             @Override  
  36.             public void onClick(View v) {  
  37.                 //TOFO 分享SDK  
  38.                 getShareSDK();  
  39.             }  
  40.   
  41.             private void getShareSDK() {  
  42.                 //3  给平台添加 listener  
  43.                 platform.setPlatformActionListener(new PlatformActionListener() {  
  44.                       
  45.                     @Override  
  46.                     public void onError(Platform arg0, int arg1, Throwable arg2) {  
  47.                         // TODO error useful  
  48.                         Log.i("error", "---error="+arg2.getLocalizedMessage());  
  49.                     }  
  50.                       
  51.                     @Override  
  52.                     public void onComplete(Platform arg0, int arg1, HashMap<String, Object> arg2) {  
  53.                         // TODO finished useful  
  54.                           
  55.                         //设置分享的参数:  
  56.                         TencentWeibo.ShareParams shareParams = new TencentWeibo.ShareParams();  
  57.                           
  58.                         shareParams.setText("美女的世界");  
  59.                         shareParams.setImageUrl("http://t12.baidu.com/it/u=750616964,1500186643&fm=59");  
  60.                           
  61.                         // 分享  
  62.                         platform.share(shareParams);                  
  63.                     }  
  64.                       
  65.                     @Override  
  66.                     public void onCancel(Platform arg0, int arg1) {  
  67.                         // TODO cancel  
  68.                           
  69.                     }  
  70.                 });  
  71.                   
  72.                 //4 授权平台!  异步任务:  
  73.                 platform.authorize();  
  74.             }  
  75.         });  
  76.           
  77.     }  
  78.   
  79.     @Override  
  80.     public boolean onCreateOptionsMenu(Menu menu) {  
  81.         // Inflate the menu; this adds items to the action bar if it is present.  
  82.         getMenuInflater().inflate(R.menu.main, menu);  
  83.         return true;  
  84.     }  
  85.   
  86. }  


androidmainfes.xml

[html]  view plain copy print ?
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     package="com.example.lovesharesdkdemo"  
  4.     android:versionCode="1"  
  5.     android:versionName="1.0" >  
  6.   
  7.     <uses-sdk  
  8.         android:minSdkVersion="14"  
  9.         android:targetSdkVersion="19" />  
  10.       
  11. <!--     权限设置 -->  
  12.     <uses-permission android:name="android.permission.GET_TASKS" />  
  13.     <uses-permission android:name="android.permission.INTERNET" />  
  14.     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />  
  15.     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />  
  16.     <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />  
  17.     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />  
  18.     <uses-permission android:name="android.permission.READ_PHONE_STATE" />  
  19.     <uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>  
  20.     <uses-permission android:name="android.permission.GET_ACCOUNTS"/>  
  21.       
  22.       
  23.   
  24.     <application  
  25.         android:allowBackup="true"  
  26.         android:icon="@drawable/ic_launcher"  
  27.         android:label="@string/app_name"  
  28.         android:theme="@style/AppTheme" >  
  29.         <activity  
  30.             android:name="com.example.lovesharesdkdemo.MainActivity"  
  31.             android:label="@string/app_name" >  
  32.             <intent-filter>  
  33.                 <action android:name="android.intent.action.MAIN" />  
  34.   
  35.                 <category android:name="android.intent.category.LAUNCHER" />  
  36.             </intent-filter>  
  37.         </activity>  
  38.           
  39.        <!--  SdkShare frameWork -->  
  40.         <activity  
  41.             android:name="cn.sharesdk.framework.ShareSDKUIShell"  
  42.             android:theme="@android:style/Theme.Translucent.NoTitleBar"  
  43.             android:configChanges="keyboardHidden|orientation|screenSize"  
  44.             android:windowSoftInputMode="stateHidden|adjustResize" >  
  45.          </activity>  
  46.           
  47.           
  48.     </application>  
  49.   
  50. </manifest>  


ShareSDK.xml

[html]  view plain copy print ?
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <DevInfor>  
  3.     <!--  
  4.         说明:  
  5.           
  6.         1、表格中的第一项  
  7.             <ShareSDK   
  8.                 AppKey="api20" />  
  9.         是必须的,其中的AppKey是您在ShareSDK上注册的开发者帐号的AppKey  
  10.           
  11.         2、所有集成到您项目的平台都应该为其在表格中填写相对应的开发者信息,以新浪微博为例:  
  12.             <SinaWeibo  
  13.                 Id="1"  
  14.                 SortId="1"  
  15.                 AppKey="568898243"  
  16.                 AppSecret="38a4f8204cc784f81f9f0daaf31e02e3"  
  17.                 RedirectUrl="http://www.sharesdk.cn"  
  18.                 Enable="true" />  
  19.         其中的SortId是此平台在分享列表中的位置,由开发者自行定义,可以是任何整型数字,数值越大  
  20.         越靠后AppKey、AppSecret和RedirectUrl是您在新浪微博上注册开发者信息和应用后得到的信息  
  21.         Id是一个保留的识别符,整型,ShareSDK不使用此字段,供您在自己的项目中当作平台的识别符。  
  22.         Enable字段表示此平台是否有效,布尔值,默认为true,如果Enable为false,即便平台的jar包  
  23.         已经添加到应用中,平台实例依然不可获取。  
  24.           
  25.         各个平台注册应用信息的地址如下:  
  26.             新浪微博                 http://open.weibo.com  
  27.             腾讯微博                 http://dev.t.qq.com  
  28.             QQ空间                      http://connect.qq.com/intro/login/  
  29.             微信好友                 http://open.weixin.qq.com  
  30.             Facebook      https://developers.facebook.com  
  31.             Twitter       https://dev.twitter.com  
  32.             人人网                      http://dev.renren.com  
  33.             开心网                      http://open.kaixin001.com  
  34.             搜狐微博                 http://open.t.sohu.com  
  35.             网易微博                 http://open.t.163.com  
  36.             豆瓣                           http://developers.douban.com  
  37.               
  38.             有道云笔记            http://note.youdao.com/open/developguide.html#app  
  39.             印象笔记                 https://dev.evernote.com/  
  40.             Linkedin      https://www.linkedin.com/secure/developer?newapp=  
  41.             FourSquare    https://developer.foursquare.com/  
  42.             搜狐随身看            https://open.sohu.com/  
  43.             Flickr        http://www.flickr.com/services/  
  44.             Pinterest     http://developers.pinterest.com/  
  45.             Tumblr        http://www.tumblr.com/developers  
  46.             Dropbox       https://www.dropbox.com/developers  
  47.             Instagram     http://instagram.com/developer#  
  48.             VKontakte     http://vk.com/dev  
  49.             易信好友            http://open.yixin.im/  
  50.             明道      http://open.mingdao.com/  
  51.             Line    http://media.line.me/zh-hant/  
  52.     -->  
  53.       
  54.     <!-- 修改成你在sharesdk后台注册的应用的appkey"-->  
  55.     <ShareSDK   
  56.         AppKey = "3500df6f55df"/>   
  57.       
  58.     <!-- ShareByAppClient标识是否使用微博客户端分享,默认是false -->  
  59.     <SinaWeibo  
  60.         Id="1"  
  61.         SortId="1"  
  62.         AppKey="568898243"  
  63.         AppSecret="38a4f8204cc784f81f9f0daaf31e02e3"  
  64.         RedirectUrl="http://www.sharesdk.cn"  
  65.         ShareByAppClient="false"  
  66.         Enable="true" />  
  67.   
  68.   <!--   腾讯微博 -->  
  69.     <TencentWeibo  
  70.         Id="2"   
  71.         SortId="2"  
  72.         AppKey="801545336"  
  73.         AppSecret="b3def3a6ff684bee7de4e49d7884c0b3"  
  74.         RedirectUri="http://www.baidu.com"  
  75.         Enable="true" />  
  76.   
  77.     <!-- ShareByAppClient标识是否使用微博客户端分享,默认是false -->  
  78.     <QZone  
  79.         Id="3"  
  80.         SortId="3"  
  81.         AppId="100371282"  
  82.         AppKey="aed9b0303e3ed1e27bae87c33761161d"  
  83.         ShareByAppClient="true"  
  84.         Enable="true" />  
  85.       
  86.     <!--   
  87.         Wechat微信和WechatMoments微信朋友圈的appid是一样的;  
  88.       
  89.                        注意:开发者不能用我们这两个平台的appid,否则分享不了  
  90.       
  91.           微信测试的时候,微信测试需要先签名打包出apk,  
  92.         sample测试微信,要先签名打包,keystore在sample项目中,密码123456  
  93.           
  94.         BypassApproval是绕过审核的标记,设置为true后AppId将被忽略,故不经过  
  95.         审核的应用也可以执行分享,但是仅限于分享文字和图片,不能分享其他类型,  
  96.         默认值为false。此外,微信收藏不支持此字段。  
  97.     -->  
  98.     <Wechat  
  99.         Id="4"  
  100.         SortId="4"  
  101.         AppId="wx4868b35061f87885"  
  102.         AppSecret="64020361b8ec4c99936c0e3999a9f249"  
  103.         BypassApproval="false"  
  104.         Enable="true" />  
  105.       
  106.     <WechatMoments  
  107.         Id="5"  
  108.         SortId="5"  
  109.         AppId="wx4868b35061f87885"  
  110.         AppSecret="64020361b8ec4c99936c0e3999a9f249"  
  111.         BypassApproval="true"  
  112.         Enable="true" />  
  113.           
  114.     <WechatFavorite  
  115.         Id="6"  
  116.         SortId="6"  
  117.         AppId="wx4868b35061f87885"  
  118.         AppSecret="64020361b8ec4c99936c0e3999a9f249"  
  119.         Enable="true" />  
  120.       
  121.     <!-- ShareByAppClient标识是否使用微博客户端分享,默认是false -->  
  122.     <QQ  
  123.         Id="7"  
  124.         SortId="7"  
  125.         AppId="100371282"  
  126.         AppKey="aed9b0303e3ed1e27bae87c33761161d"  
  127.         ShareByAppClient="true"  
  128.         Enable="true" />  
  129.       
  130.     <Facebook  
  131.         Id="8"  
  132.         SortId="8"  
  133.         ConsumerKey="107704292745179"  
  134.         ConsumerSecret="38053202e1a5fe26c80c753071f0b573"  
  135.         Enable="true" />  
  136.   
  137.     <Twitter  
  138.         Id="9"  
  139.         SortId="9"  
  140.         ConsumerKey="mnTGqtXk0TYMXYTN7qUxg"  
  141.         ConsumerSecret="ROkFqr8c3m1HXqS3rm3TJ0WkAJuwBOSaWhPbZ9Ojuc"  
  142.         CallbackUrl="http://www.sharesdk.cn"  
  143.         Enable="true" />  
  144.   
  145.     <Renren  
  146.         Id="10"  
  147.         SortId="10"  
  148.         AppId="226427"  
  149.         ApiKey="fc5b8aed373c4c27a05b712acba0f8c3"  
  150.         SecretKey="f29df781abdd4f49beca5a2194676ca4"  
  151.         Enable="true" />  
  152.       
  153.     <KaiXin  
  154.         Id="11"  
  155.         SortId="11"  
  156.         AppKey="358443394194887cee81ff5890870c7c"  
  157.         AppSecret="da32179d859c016169f66d90b6db2a23"  
  158.         RedirectUri="http://www.sharesdk.cn"  
  159.         Enable="true" />  
  160.       
  161.     <Email  
  162.         Id="12"   
  163.         SortId="12"  
  164.         Enable="true" />  
  165.       
  166.     <ShortMessage  
  167.         Id="13"   
  168.         SortId="13"  
  169.         Enable="true" />  
  170.       
  171.     <SohuMicroBlog  
  172.         Id="14"  
  173.         SortId="14"  
  174.         ApiKey="q70QBQM9T0COxzYpGLj9"  
  175.         ConsumerKey="q70QBQM9T0COxzYpGLj9"  
  176.         ConsumerSecret="XXYrx%QXbS!uA^m2$8TaD4T1HQoRPUH0gaG2BgBd"  
  177.         CallbackUrl="http://www.sharesdk.cn"  
  178.         Enable="true" />  
  179.       
  180.     <NetEaseMicroBlog  
  181.         Id="15"  
  182.         SortId="15"  
  183.         ConsumerKey="T5EI7BXe13vfyDuy"  
  184.         ConsumerSecret="gZxwyNOvjFYpxwwlnuizHRRtBRZ2lV1j"  
  185.         RedirectUri="http://www.shareSDK.cn"  
  186.         Enable="true" />  
  187.       
  188.     <Douban  
  189.         Id="16"  
  190.         SortId="16"  
  191.         ApiKey="02e2cbe5ca06de5908a863b15e149b0b"  
  192.         Secret="9f1e7b4f71304f2f"  
  193.         RedirectUri="http://www.sharesdk.cn"  
  194.         Enable="true" />  
  195.       
  196.     <YouDao  
  197.         Id="17"  
  198.         SortId="17"  
  199.         HostType="product"  
  200.         ConsumerKey="dcde25dca105bcc36884ed4534dab940"  
  201.         ConsumerSecret="d98217b4020e7f1874263795f44838fe"  
  202.         RedirectUri="http://www.sharesdk.cn"  
  203.         Enable="true" />  
  204.           
  205.     <SohuSuishenkan  
  206.         Id="18"  
  207.         SortId="18"  
  208.         AppKey="e16680a815134504b746c86e08a19db0"  
  209.         AppSecret="b8eec53707c3976efc91614dd16ef81c"  
  210.         RedirectUri="http://sharesdk.cn"  
  211.         Enable="true" />  
  212.           
  213.     <!--   
  214.         在中国大陆,印象笔记有两个服务器,一个是沙箱(sandbox),一个是生产服务器(china)。  
  215.         一般你注册应用,它会先让你使用sandbox,当你完成测试以后,可以到  
  216.         http://dev.yinxiang.com/support/上激活你的ConsumerKey,激活成功后,修改HostType  
  217.         为china就好了。至于如果您申请的是国际版的印象笔记(Evernote),则其生产服务器类型为  
  218.         “product”。  
  219.           
  220.         如果目标设备上已经安装了印象笔记客户端,ShareSDK允许应用调用本地API来完成分享,但  
  221.         是需要将应用信息中的“ShareByAppClient”设置为true,此字段默认值为false。  
  222.     -->  
  223.     <Evernote  
  224.         Id="19"  
  225.         SortId="19"  
  226.         HostType="sandbox"  
  227.         ConsumerKey="sharesdk-7807"  
  228.         ConsumerSecret="d05bf86993836004"  
  229.         ShareByAppClient="false"  
  230.         Enable="true" />  
  231.       
  232.     <LinkedIn  
  233.         Id="20"  
  234.         SortId="20"  
  235.         ApiKey="ejo5ibkye3vo"  
  236.         SecretKey="cC7B2jpxITqPLZ5M"   
  237.         RedirectUrl="http://sharesdk.cn"  
  238.         Enable="true" />  
  239.       
  240.      <GooglePlus  
  241.         Id="21"  
  242.         SortId="21"  
  243.         Enable="true" />  
  244.        
  245.      <FourSquare  
  246.         Id="22"  
  247.         SortId="22"  
  248.         ClientID="G0ZI20FM30SJAJTX2RIBGD05QV1NE2KVIM2SPXML2XUJNXEU"  
  249.         ClientSecret="3XHQNSMMHIFBYOLWEPONNV4DOTCDBQH0AEMVGCBG0MZ32XNU"  
  250.         RedirectUrl="http://www.sharesdk.cn"  
  251.         Enable="true" />  
  252.           
  253.     <Pinterest  
  254.         Id="23"  
  255.         SortId="23"  
  256.         ClientId="1432928"  
  257.         Enable="true" />  
  258.        
  259.      <Flickr  
  260.         Id="24"  
  261.         SortId="24"  
  262.         ApiKey="33d833ee6b6fca49943363282dd313dd"  
  263.         ApiSecret="3a2c5b42a8fbb8bb"  
  264.         RedirectUri="http://www.sharesdk.cn"  
  265.         Enable="true" />  
  266.           
  267.     <Tumblr  
  268.         Id="25"  
  269.         SortId="25"  
  270.         OAuthConsumerKey="2QUXqO9fcgGdtGG1FcvML6ZunIQzAEL8xY6hIaxdJnDti2DYwM"  
  271.         SecretKey="3Rt0sPFj7u2g39mEVB3IBpOzKnM3JnTtxX2bao2JKk4VV1gtNo"  
  272.         CallbackUrl="http://sharesdk.cn"  
  273.         Enable="true" />  
  274.    
  275.     <Dropbox  
  276.         Id="26"  
  277.         SortId="26"  
  278.         AppKey="7janx53ilz11gbs"  
  279.         AppSecret="c1hpx5fz6tzkm32"  
  280.         Enable="true" />  
  281.           
  282.     <VKontakte   
  283.         Id="27"  
  284.         SortId="27"  
  285.         ApplicationId="3921561"  
  286.         Enable="true" />  
  287.           
  288.     <Instagram   
  289.         Id="28"  
  290.         SortId="28"  
  291.         ClientId="ff68e3216b4f4f989121aa1c2962d058"  
  292.         ClientSecret="1b2e82f110264869b3505c3fe34e31a1"  
  293.         RedirectUri="http://sharesdk.cn"  
  294.         Enable="true" />  
  295.       
  296.     <!--   
  297.         Yixin易信和YixinMoments易信朋友圈的appid是一样的;  
  298.       
  299.                        注意:开发者不能用我们这两个平台的appid,否则分享不了  
  300.       
  301.          易信测试的时候需要先签名打包出apk,  
  302.         sample测试易信,要先签名打包,keystore在sample项目中,密码123456  
  303.           
  304.         BypassApproval是绕过审核的标记,设置为true后AppId将被忽略,故不经过  
  305.         审核的应用也可以执行分享,但是仅限于分享文字或图片,不能分享其他类型,  
  306.         默认值为false。  
  307.     -->  
  308.     <Yixin   
  309.         Id="29"  
  310.         SortId="29"  
  311.         AppId="yx0d9a9f9088ea44d78680f3274da1765f"  
  312.         BypassApproval="true"  
  313.         Enable="true" />  
  314.       
  315.     <YixinMoments  
  316.         Id="30"  
  317.         SortId="30"  
  318.         AppId="yx0d9a9f9088ea44d78680f3274da1765f"  
  319.         BypassApproval="true"  
  320.         Enable="true" />  
  321.   
  322.     <Mingdao  
  323.         Id="31"  
  324.         SortId="31"  
  325.         AppKey="EEEE9578D1D431D3215D8C21BF5357E3"  
  326.         AppSecret="5EDE59F37B3EFA8F65EEFB9976A4E933"  
  327.         RedirectUri="http://sharesdk.cn"  
  328.         Enable="true" />  
  329.       
  330.     <Line  
  331.         Id="32"  
  332.         SortId="32"  
  333.         Enable="true" />  
  334.       
  335.     <KakaoTalk  
  336.         Id="33"  
  337.         SortId="33"  
  338.         Enable="true" />  
  339.       
  340.     <KakaoStory  
  341.         Id="34"  
  342.         SortId="34"  
  343.         Enable="true" />  
  344.       
  345. </DevInfor>  




需要的包:如图:



版权声明:本文为博主原创文章,未经博主允许不得转载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值