`
ch_kexin
  • 浏览: 904575 次
  • 性别: Icon_minigender_2
  • 来自: 青岛
社区版块
存档分类
最新评论

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);

分享案例代码:

package com.example.lovesharesdkdemo;  
  
import java.util.HashMap;  
  
import android.app.Activity;  
import android.os.Bundle;  
import android.util.Log;  
import android.view.Menu;  
import android.view.View;  
import android.view.View.OnClickListener;  
import android.widget.TextView;  
import cn.sharesdk.framework.Platform;  
import cn.sharesdk.framework.PlatformActionListener;  
import cn.sharesdk.framework.ShareSDK;  
import cn.sharesdk.tencent.weibo.TencentWeibo;  
  
public class MainActivity extends Activity {  
  
    private Platform platform;  
      
    private TextView textView;  
  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  
        //1 初始化SDK  
        ShareSDK.initSDK(getApplicationContext());  
        //2.设置指定平台  
        platform = ShareSDK.getPlatform(TencentWeibo.NAME);  
        //3 获取组件  注册事件  
        textView = (TextView) this.findViewById(R.id.buttton);  
        textView.setOnClickListener(new OnClickListener() {  
              
            @Override  
            public void onClick(View v) {  
                //TOFO 分享SDK  
                getShareSDK();  
            }  
  
            private void getShareSDK() {  
                //3  给平台添加 listener  
                platform.setPlatformActionListener(new PlatformActionListener() {  
                      
                    @Override  
                    public void onError(Platform arg0, int arg1, Throwable arg2) {  
                        // TODO error useful  
                        Log.i("error", "---error="+arg2.getLocalizedMessage());  
                    }  
                      
                    @Override  
                    public void onComplete(Platform arg0, int arg1, HashMap<String, Object> arg2) {  
                        // TODO finished useful  
                          
                        //设置分享的参数:  
                        TencentWeibo.ShareParams shareParams = new TencentWeibo.ShareParams();  
                          
                        shareParams.setText("美女的世界");  
                        shareParams.setImageUrl("http://t12.baidu.com/it/u=750616964,1500186643&fm=59");  
                          
                        // 分享  
                        platform.share(shareParams);                  
                    }  
                      
                    @Override  
                    public void onCancel(Platform arg0, int arg1) {  
                        // TODO cancel  
                          
                    }  
                });  
                  
                //4 授权平台!  异步任务:  
                platform.authorize();  
            }  
        });  
          
    }  
  
    @Override  
    public boolean onCreateOptionsMenu(Menu menu) {  
        // Inflate the menu; this adds items to the action bar if it is present.  
        getMenuInflater().inflate(R.menu.main, menu);  
        return true;  
    }  
  
}  

 androidmainfes.xml:

<?xml version="1.0" encoding="utf-8"?>  
<manifest xmlns:android="http://schemas.android.com/apk/res/android"  
    package="com.example.lovesharesdkdemo"  
    android:versionCode="1"  
    android:versionName="1.0" >  
  
    <uses-sdk  
        android:minSdkVersion="14"  
        android:targetSdkVersion="19" />  
      
<!--     权限设置 -->  
    <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"/>  
      
      
  
    <application  
        android:allowBackup="true"  
        android:icon="@drawable/ic_launcher"  
        android:label="@string/app_name"  
        android:theme="@style/AppTheme" >  
        <activity  
            android:name="com.example.lovesharesdkdemo.MainActivity"  
            android:label="@string/app_name" >  
            <intent-filter>  
                <action android:name="android.intent.action.MAIN" />  
  
                <category android:name="android.intent.category.LAUNCHER" />  
            </intent-filter>  
        </activity>  
          
       <!--  SdkShare frameWork -->  
        <activity  
            android:name="cn.sharesdk.framework.ShareSDKUIShell"  
            android:theme="@android:style/Theme.Translucent.NoTitleBar"  
            android:configChanges="keyboardHidden|orientation|screenSize"  
            android:windowSoftInputMode="stateHidden|adjustResize" >  
         </activity>  
          
          
    </application>  
  
</manifest>  

 ShareSDK.xml:

<?xml version="1.0" encoding="utf-8"?>  
<DevInfor>  
    <!--  
        说明:  
          
        1、表格中的第一项  
            <ShareSDK   
                AppKey="api20" />  
        是必须的,其中的AppKey是您在ShareSDK上注册的开发者帐号的AppKey  
          
        2、所有集成到您项目的平台都应该为其在表格中填写相对应的开发者信息,以新浪微博为例:  
            <SinaWeibo  
                Id="1"  
                SortId="1"  
                AppKey="568898243"  
                AppSecret="38a4f8204cc784f81f9f0daaf31e02e3"  
                RedirectUrl="http://www.sharesdk.cn"  
                Enable="true" />  
        其中的SortId是此平台在分享列表中的位置,由开发者自行定义,可以是任何整型数字,数值越大  
        越靠后AppKey、AppSecret和RedirectUrl是您在新浪微博上注册开发者信息和应用后得到的信息  
        Id是一个保留的识别符,整型,ShareSDK不使用此字段,供您在自己的项目中当作平台的识别符。  
        Enable字段表示此平台是否有效,布尔值,默认为true,如果Enable为false,即便平台的jar包  
        已经添加到应用中,平台实例依然不可获取。  
          
        各个平台注册应用信息的地址如下:  
            新浪微博                 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  
            易信好友            http://open.yixin.im/  
            明道      http://open.mingdao.com/  
            Line    http://media.line.me/zh-hant/  
    -->  
      
    <!-- 修改成你在sharesdk后台注册的应用的appkey"-->  
    <ShareSDK   
        AppKey = "3500df6f55df"/>   
      
    <!-- ShareByAppClient标识是否使用微博客户端分享,默认是false -->  
    <SinaWeibo  
        Id="1"  
        SortId="1"  
        AppKey="568898243"  
        AppSecret="38a4f8204cc784f81f9f0daaf31e02e3"  
        RedirectUrl="http://www.sharesdk.cn"  
        ShareByAppClient="false"  
        Enable="true" />  
  
  <!--   腾讯微博 -->  
    <TencentWeibo  
        Id="2"   
        SortId="2"  
        AppKey="801545336"  
        AppSecret="b3def3a6ff684bee7de4e49d7884c0b3"  
        RedirectUri="http://www.baidu.com"  
        Enable="true" />  
  
    <!-- ShareByAppClient标识是否使用微博客户端分享,默认是false -->  
    <QZone  
        Id="3"  
        SortId="3"  
        AppId="100371282"  
        AppKey="aed9b0303e3ed1e27bae87c33761161d"  
        ShareByAppClient="true"  
        Enable="true" />  
      
    <!--   
        Wechat微信和WechatMoments微信朋友圈的appid是一样的;  
      
                       注意:开发者不能用我们这两个平台的appid,否则分享不了  
      
          微信测试的时候,微信测试需要先签名打包出apk,  
        sample测试微信,要先签名打包,keystore在sample项目中,密码123456  
          
        BypassApproval是绕过审核的标记,设置为true后AppId将被忽略,故不经过  
        审核的应用也可以执行分享,但是仅限于分享文字和图片,不能分享其他类型,  
        默认值为false。此外,微信收藏不支持此字段。  
    -->  
    <Wechat  
        Id="4"  
        SortId="4"  
        AppId="wx4868b35061f87885"  
        AppSecret="64020361b8ec4c99936c0e3999a9f249"  
        BypassApproval="false"  
        Enable="true" />  
      
    <WechatMoments  
        Id="5"  
        SortId="5"  
        AppId="wx4868b35061f87885"  
        AppSecret="64020361b8ec4c99936c0e3999a9f249"  
        BypassApproval="true"  
        Enable="true" />  
          
    <WechatFavorite  
        Id="6"  
        SortId="6"  
        AppId="wx4868b35061f87885"  
        AppSecret="64020361b8ec4c99936c0e3999a9f249"  
        Enable="true" />  
      
    <!-- ShareByAppClient标识是否使用微博客户端分享,默认是false -->  
    <QQ  
        Id="7"  
        SortId="7"  
        AppId="100371282"  
        AppKey="aed9b0303e3ed1e27bae87c33761161d"  
        ShareByAppClient="true"  
        Enable="true" />  
      
    <Facebook  
        Id="8"  
        SortId="8"  
        ConsumerKey="107704292745179"  
        ConsumerSecret="38053202e1a5fe26c80c753071f0b573"  
        Enable="true" />  
  
    <Twitter  
        Id="9"  
        SortId="9"  
        ConsumerKey="mnTGqtXk0TYMXYTN7qUxg"  
        ConsumerSecret="ROkFqr8c3m1HXqS3rm3TJ0WkAJuwBOSaWhPbZ9Ojuc"  
        CallbackUrl="http://www.sharesdk.cn"  
        Enable="true" />  
  
    <Renren  
        Id="10"  
        SortId="10"  
        AppId="226427"  
        ApiKey="fc5b8aed373c4c27a05b712acba0f8c3"  
        SecretKey="f29df781abdd4f49beca5a2194676ca4"  
        Enable="true" />  
      
    <KaiXin  
        Id="11"  
        SortId="11"  
        AppKey="358443394194887cee81ff5890870c7c"  
        AppSecret="da32179d859c016169f66d90b6db2a23"  
        RedirectUri="http://www.sharesdk.cn"  
        Enable="true" />  
      
    <Email  
        Id="12"   
        SortId="12"  
        Enable="true" />  
      
    <ShortMessage  
        Id="13"   
        SortId="13"  
        Enable="true" />  
      
    <SohuMicroBlog  
        Id="14"  
        SortId="14"  
        ApiKey="q70QBQM9T0COxzYpGLj9"  
        ConsumerKey="q70QBQM9T0COxzYpGLj9"  
        ConsumerSecret="XXYrx%QXbS!uA^m2$8TaD4T1HQoRPUH0gaG2BgBd"  
        CallbackUrl="http://www.sharesdk.cn"  
        Enable="true" />  
      
    <NetEaseMicroBlog  
        Id="15"  
        SortId="15"  
        ConsumerKey="T5EI7BXe13vfyDuy"  
        ConsumerSecret="gZxwyNOvjFYpxwwlnuizHRRtBRZ2lV1j"  
        RedirectUri="http://www.shareSDK.cn"  
        Enable="true" />  
      
    <Douban  
        Id="16"  
        SortId="16"  
        ApiKey="02e2cbe5ca06de5908a863b15e149b0b"  
        Secret="9f1e7b4f71304f2f"  
        RedirectUri="http://www.sharesdk.cn"  
        Enable="true" />  
      
    <YouDao  
        Id="17"  
        SortId="17"  
        HostType="product"  
        ConsumerKey="dcde25dca105bcc36884ed4534dab940"  
        ConsumerSecret="d98217b4020e7f1874263795f44838fe"  
        RedirectUri="http://www.sharesdk.cn"  
        Enable="true" />  
          
    <SohuSuishenkan  
        Id="18"  
        SortId="18"  
        AppKey="e16680a815134504b746c86e08a19db0"  
        AppSecret="b8eec53707c3976efc91614dd16ef81c"  
        RedirectUri="http://sharesdk.cn"  
        Enable="true" />  
          
    <!--   
        在中国大陆,印象笔记有两个服务器,一个是沙箱(sandbox),一个是生产服务器(china)。  
        一般你注册应用,它会先让你使用sandbox,当你完成测试以后,可以到  
        http://dev.yinxiang.com/support/上激活你的ConsumerKey,激活成功后,修改HostType  
        为china就好了。至于如果您申请的是国际版的印象笔记(Evernote),则其生产服务器类型为  
        “product”。  
          
        如果目标设备上已经安装了印象笔记客户端,ShareSDK允许应用调用本地API来完成分享,但  
        是需要将应用信息中的“ShareByAppClient”设置为true,此字段默认值为false。  
    -->  
    <Evernote  
        Id="19"  
        SortId="19"  
        HostType="sandbox"  
        ConsumerKey="sharesdk-7807"  
        ConsumerSecret="d05bf86993836004"  
        ShareByAppClient="false"  
        Enable="true" />  
      
    <LinkedIn  
        Id="20"  
        SortId="20"  
        ApiKey="ejo5ibkye3vo"  
        SecretKey="cC7B2jpxITqPLZ5M"   
        RedirectUrl="http://sharesdk.cn"  
        Enable="true" />  
      
     <GooglePlus  
        Id="21"  
        SortId="21"  
        Enable="true" />  
       
     <FourSquare  
        Id="22"  
        SortId="22"  
        ClientID="G0ZI20FM30SJAJTX2RIBGD05QV1NE2KVIM2SPXML2XUJNXEU"  
        ClientSecret="3XHQNSMMHIFBYOLWEPONNV4DOTCDBQH0AEMVGCBG0MZ32XNU"  
        RedirectUrl="http://www.sharesdk.cn"  
        Enable="true" />  
          
    <Pinterest  
        Id="23"  
        SortId="23"  
        ClientId="1432928"  
        Enable="true" />  
       
     <Flickr  
        Id="24"  
        SortId="24"  
        ApiKey="33d833ee6b6fca49943363282dd313dd"  
        ApiSecret="3a2c5b42a8fbb8bb"  
        RedirectUri="http://www.sharesdk.cn"  
        Enable="true" />  
          
    <Tumblr  
        Id="25"  
        SortId="25"  
        OAuthConsumerKey="2QUXqO9fcgGdtGG1FcvML6ZunIQzAEL8xY6hIaxdJnDti2DYwM"  
        SecretKey="3Rt0sPFj7u2g39mEVB3IBpOzKnM3JnTtxX2bao2JKk4VV1gtNo"  
        CallbackUrl="http://sharesdk.cn"  
        Enable="true" />  
   
    <Dropbox  
        Id="26"  
        SortId="26"  
        AppKey="7janx53ilz11gbs"  
        AppSecret="c1hpx5fz6tzkm32"  
        Enable="true" />  
          
    <VKontakte   
        Id="27"  
        SortId="27"  
        ApplicationId="3921561"  
        Enable="true" />  
          
    <Instagram   
        Id="28"  
        SortId="28"  
        ClientId="ff68e3216b4f4f989121aa1c2962d058"  
        ClientSecret="1b2e82f110264869b3505c3fe34e31a1"  
        RedirectUri="http://sharesdk.cn"  
        Enable="true" />  
      
    <!--   
        Yixin易信和YixinMoments易信朋友圈的appid是一样的;  
      
                       注意:开发者不能用我们这两个平台的appid,否则分享不了  
      
         易信测试的时候需要先签名打包出apk,  
        sample测试易信,要先签名打包,keystore在sample项目中,密码123456  
          
        BypassApproval是绕过审核的标记,设置为true后AppId将被忽略,故不经过  
        审核的应用也可以执行分享,但是仅限于分享文字或图片,不能分享其他类型,  
        默认值为false。  
    -->  
    <Yixin   
        Id="29"  
        SortId="29"  
        AppId="yx0d9a9f9088ea44d78680f3274da1765f"  
        BypassApproval="true"  
        Enable="true" />  
      
    <YixinMoments  
        Id="30"  
        SortId="30"  
        AppId="yx0d9a9f9088ea44d78680f3274da1765f"  
        BypassApproval="true"  
        Enable="true" />  
  
    <Mingdao  
        Id="31"  
        SortId="31"  
        AppKey="EEEE9578D1D431D3215D8C21BF5357E3"  
        AppSecret="5EDE59F37B3EFA8F65EEFB9976A4E933"  
        RedirectUri="http://sharesdk.cn"  
        Enable="true" />  
      
    <Line  
        Id="32"  
        SortId="32"  
        Enable="true" />  
      
    <KakaoTalk  
        Id="33"  
        SortId="33"  
        Enable="true" />  
      
    <KakaoStory  
        Id="34"  
        SortId="34"  
        Enable="true" />  
      
</DevInfor>  

 需要的包:如图:

分享到:
评论

相关推荐

    ShareSDKDemo分享案例Demo(uni-app)

    【ShareSDKDemo分享案例Demo(uni-app)】是一款基于uni-app框架开发的示例应用,旨在帮助开发者快速理解和实现社交平台的一键分享和第三方登录功能。uni-app是一个跨平台的前端开发框架,允许开发者用一套代码编写...

    ShareSDK分享到微博,腾讯,QQ,短信等

    ShareSDK 是一款在中国广泛使用的社交分享工具,它允许开发者轻松地将应用的内容分享到各种社交媒体平台,如微博、腾讯QQ、微信等。这个工具极大地简化了集成这些平台SDK的过程,减少了开发时间并优化了用户体验。在...

    ShareSDK-Android-2.4.2.tar.gz

    在本案例中,我们关注的是 "ShareSDK-Android-2.4.2.tar.gz" 文件,这是一个针对Android平台的ShareSDK的特定版本压缩包。 1. **ShareSDK 的核心功能**: - **第三方登录**:ShareSDK 支持用户通过微信、QQ、微博...

    android分享(微信,朋友圈,微博等)

    在Android开发中,分享功能是应用中不可或缺的一部分,它允许用户将内容如文字、图片、链接等快速地发送到各种社交平台,如微信、朋友圈、微博等。本篇将详细介绍如何实现这一功能,并提供实际案例——Share SDK ...

    Android之第三方平台实现多平台分享操作

    本案例聚焦于如何利用第三方平台来实现在Android应用程序中进行多平台分享的操作。我们将探讨分享功能的重要性,以及如何通过引入第三方库MobFX来简化这一过程。 首先,我们需要理解分享功能对移动应用的意义。分享...

    2015-06-20-ShareDemo.rar

    ShareSDK是由MobTech开发的一款社会化分享工具,支持包括微信、QQ、微博等在内的多种主流社交平台。通过 ShareSDK,开发者可以一次性集成多个社交平台的分享功能,减少重复的工作量。 在"ShareDemo"项目中,我们...

    微信分享、邮件分享demo下载

    ShareSdk是一个社交分享组件,它封装了多个社交平台的分享接口,包括微信、QQ、微博等,为开发者提供了统一的API调用方式。使用ShareSdk可以大大简化多平台分享的开发工作,减少维护成本。在本demo中,ShareSdk被...

    第三方登录

    sharesdk是一个由中国分享网络技术有限公司开发的社交分享和登录SDK,它提供了一个集中的接口,开发者可以通过这个接口轻松地接入各种社交平台,如微博、微信、QQ等。sharesdk简化了与这些平台API的交互过程,降低了...

    onekeyshareDemo

    开发者可能需要集成第三方分享库,如UMeng、ShareSDK等,这些库提供了丰富的分享渠道,包括微信、QQ、微博等社交平台,并且简化了配置和实现过程。 总结一下,"onekeyshareDemo"是一个展示如何在Android应用中实现...

    Android实现底部缓慢弹出菜单

    这个特定的案例是关于如何在Android应用中实现在底部缓慢弹出一个包含多个按钮的菜单(Button Menu)。以下是对这个功能的详细解析: 首先,我们需要创建一个布局文件来定义底部菜单的结构。在`R.layout.fragment_...

Global site tag (gtag.js) - Google Analytics