Android - ShareSDK第三方平台的详细使用参考官方API

首先看看效果图吧

1:第一个界面button用于启动分享

设置按钮启动

2:进入分享页 如果有软件则会拉去本地软件登录

如果检测到手机没有新浪微博便会启动网页版登录

3:一键分享

一键分享效果图

4:输入想分享的话

分享内容自定义添加

进入极光官网的mob文档中心打开以下链接:
http://wiki.mob.com/Android_%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E6%8C%87%E5%8D%97/

Studio的快成集成请参考《ShareSDK for Studio 快速集成》以下链接:
http://bbs.mob.com/thread-22130-1-1.html

下载完ShareSDK后在下面文档中


下载完成的sdk文档

选择ShareSDK for Android文件夹下的


选择上图标记部分

选择弹窗中需要的用到的部分

选择Quick这一项生成simple文件,然后将里面的内容对应复制到工程中去,如果复制出错就不能成功。完了再上门两个网站中都有详解

但是下面的部分需要注意的:
Mainactivity

package com.lt.an43_sharesdk;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;

import java.util.HashMap;

import cn.sharesdk.framework.Platform;
import cn.sharesdk.framework.PlatformActionListener;
import cn.sharesdk.framework.ShareSDK;
import cn.sharesdk.onekeyshare.OnekeyShare;
import cn.sharesdk.sina.weibo.SinaWeibo;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ShareSDK.initSDK(this);//初始化ShareSDK
    }
    /*
        点击按钮将数据分享到新浪微博平台
         */
    public void sharedSina(View view) {
        //1.获取当前分享的平台实例
        Platform platform=ShareSDK.getPlatform(SinaWeibo.NAME);
        //2.添加相应的监听事件
        platform.setPlatformActionListener(new PlatformActionListener() {
            //表示分享开始执行时回调的函数
            @Override
            public void onComplete(Platform platform, int action, HashMap<String, Object> hashMap) {
                if(action==Platform.ACTION_AUTHORIZING){
                    Log.i("tag","授权成功!");
                    //构建分享对象并且启动分享
                    SinaWeibo.ShareParams params=new SinaWeibo.ShareParams();
                    params.setText("快来下载Kris的APP啦....");
                    //启动分享
                    platform.share(params);
                }else if(action==Platform.ACTION_SHARE){
                    Log.i("tag","分享成功!");
                }
            }

            @Override
            public void onError(Platform platform, int i, Throwable throwable) {
                Log.i("tag","分享出错");
                throwable.printStackTrace();
            }

            @Override
            public void onCancel(Platform platform, int i) {
                Log.i("tag","取消分享");
            }
        });
        //3.授权
        platform.authorize();
    }

    /**
     * 一键分享
     */
    public void sharedOneKey(View view){
        //1.创建一键分享对象
        OnekeyShare share=new OnekeyShare();
        share.disableSSOWhenAuthorize();//关闭sso授权
        //设置一键分享的内容
        share.setText("Kris未签名上线APP能实现一键分享了....");
        share.show(this);
    }
}

布局部分

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.lt.an43_sharesdk.MainActivity">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="sharedSina"
        android:text="分享到新浪微博" />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="sharedOneKey"
        android:text="一键分享" />
</LinearLayout>

assets下面的ShareSDK.xml将需要分享的平台依次注册原理大体相同 这里以新浪微博为例:
AppKey="2144772879"
AppSecret="882a6eda4eb992680a0e7f4e625cd86d"
RedirectUrl="https://api.weibo.com/oauth2/default.html"授权回调页

这三项需要在新浪开发者平台注册完成点击里面的微连接 移动应用 即可创建秘钥

方法一:dos窗口中完成 仅用于测试

cd .android
keytool -list -v -keystore debug.keystore

这里写图片描述
这里写图片描述

MD5: F4:DB:33:C2:E2:F8:1D:28:27:F5:00:74:6D:5E:B7:E9
转换后:
f4db33c2e2f81d2827f500746d5eb7e9
作为APP的签名在新浪开发者中心使用

方法二:打包签名获取秘钥 studio打包,签名,混淆正式上线后使用签名的秘钥即可

授权回调页
https://api.weibo.com/oauth2/default.html

<?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.mob.com"
                Enable="true" />
        其中的SortId是此平台在分享列表中的位置,由开发者自行定义,可以是任何整型数字,数值越大
        越靠后AppKey、AppSecret和RedirectUrl是您在新浪微博上注册开发者信息和应用后得到的信息
        Id是一个保留的识别符,整型,ShareSDK不使用此字段,供您在自己的项目中当作平台的识别符。
        Enable字段表示此平台是否有效,布尔值,默认为true,如果Enable为false,即便平台的jar包
        已经添加到应用中,平台实例依然不可获取。
        
        各个平台注册应用信息的地址如下:
            新浪微博        http://open.weibo.com
            微信好友        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://developer.linkedin.com
            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/
            Pocket         http://getpocket.com/developer/apps/new
            KakaoTalk      https://developers.kakao.com/
            KakaoStory     https://developers.kakao.com/
            Plurk          http://www.plurk.com/API
    -->
    
    <ShareSDK 
        AppKey = "18e3f6730b33c"/> <!-- 修改成你在sharesdk后台注册的应用的appkey"-->
    
    <!-- ShareByAppClient标识是否使用微博客户端分享,默认是false -->
    <SinaWeibo
        Id="1"
        SortId="1"
        AppKey="2144772879"
        AppSecret="882a6eda4eb992680a0e7f4e625cd86d"
        RedirectUrl="https://api.weibo.com/oauth2/default.html"
        ShareByAppClient="true"
        Enable="true" />

    <TencentWeibo
        Id="2" 
        SortId="2"
        AppKey="801307650"
        AppSecret="ae36f4ee3946e1cbb98d6965b0b2ff5c"
        RedirectUri="http://sharesdk.cn"
        Enable="true" />
    
    <QZone
        Id="3"
        SortId="3"
        AppId="100371282"
        AppKey="aed9b0303e3ed1e27bae87c33761161d"
        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="false"
        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"
        RedirectUrl="http://mob.com"
        Enable="true" />

    <Twitter
        Id="9"
        SortId="9"
        ConsumerKey="LRBM0H75rWrU9gNHvlEAA2aOy"
        ConsumerSecret="gbeWsZvA9ELJSdoBzJ5oLKX0TU09UOwrzdGfo9Tg7DjyGuMe8G"
        CallbackUrl="http://mob.com"
        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" />
    
    <Douban
        Id="16"
        SortId="16"
        ApiKey="031a96a3aa8b28af094fc3eaffa17a0d"
        Secret="2e675e730571b75d"
        RedirectUri="http://mob.com"
        Enable="true" />
    
    <YouDao
        Id="17"
        SortId="17"
        HostType="product"
        ConsumerKey="dcde25dca105bcc36884ed4534dab940"
        ConsumerSecret="d98217b4020e7f1874263795f44838fe"
        RedirectUri="http://www.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="true"
        Enable="true" />
    
    <LinkedIn
        Id="20"
        SortId="20"
        ApiKey="ejo5ibkye3vo"
        SecretKey="cC7B2jpxITqPLZ5M" 
        RedirectUrl="http://sharesdk.cn"
        Enable="true" />
    
     <GooglePlus
        Id="21"
        SortId="21"
        ClientID="682795613743-cfo3a8r4va0ujja7qofr54hobt2kv3cq.apps.googleusercontent.com"
        RedirectUrl="http://localhost"
        ShareByAppClient = "false"
        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="i5vw2mex1zcgjcj" 
        AppSecret="3i9xifsgb4omr0s"
        RedirectUri="https://www.sharesdk.cn"
        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"
        AppKey="48d3f524e4a636b08d81b3ceb50f1003"
        Enable="true" />
    
    <KakaoStory
        Id="34"
        SortId="34"
        AppKey="48d3f524e4a636b08d81b3ceb50f1003"
        Enable="true" />

    <WhatsApp
        Id="35"
        SortId="35"
        Enable="true" />
    
    <Bluetooth
        Id="36"
        SortId="36"
        Enable="true" />

    <Pocket
        Id="37"
        SortId="37"
        ConsumerKey="32741-389c565043c49947ba7edf05"
        Enable="true" />
    
    <Instapaper
        Id="38"
        SortId="38"
        ConsumerKey="4rDJORmcOcSAZL1YpqGHRI605xUvrLbOhkJ07yO0wWrYrc61FA"
        ConsumerSecret="GNr1GespOQbrm8nvd7rlUsyRQsIo3boIbMguAl9gfpdL0aKZWe"
        Enable="true" />
    
    <FacebookMessenger
        Id="39"
        SortId="39"
        AppId="107704292745179"
        Enable="true" />
    
     <Alipay
        Id="50"
        SortId="50"  
        AppId="2015072400185895"
        Enable="true"/>
     
     <AlipayMoments
        Id="51"
        SortId="51"  
        AppId="2015072400185895"
        Enable="true"/>

</DevInfor>

源码地址

https://git.oschina.net/null_838_9031/An43_ShareSdk

CSDN请移步到

http://blog.csdn.net/First_CooMan##

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,907评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,987评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,298评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,586评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,633评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,488评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,275评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,176评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,619评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,819评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,932评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,655评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,265评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,871评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,994评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,095评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,884评论 2 354

推荐阅读更多精彩内容