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标识是否使用微博client分享,默认是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标识是否使用微博client分享。默认是false -->
<QZone
Id="3"
SortId="3"
AppId="100371282"
AppKey="aed9b0303e3ed1e27bae87c33761161d"
ShareByAppClient="true"
Enable="true" /> <!--
Wechat微信和WechatMoments微信朋友圈的appid是一样的; 注意:开发人员不能用我们这两个平台的appid,否则分享不了 微信測试的时候,微信測试须要先签名打包出apk,
sample測试微信,要先签名打包,keystore在sample项目中,password123456 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标识是否使用微博client分享。默认是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" /> <!--
在中国大陆,印象笔记有两个server,一个是沙箱(sandbox),一个是生产server(china)。 一般你注冊应用,它会先让你使用sandbox,当你完毕測试以后。能够到
http://dev.yinxiang.com/support/上激活你的ConsumerKey。激活成功后。改动HostType
为china就好了。 至于假设您申请的是国际版的印象笔记(Evernote)。则其生产server类型为
“product”。 假设目标设备上已经安装了印象笔记client,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项目中,password123456 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>

须要的包:如图:

android shareSDK 微博分享案例的更多相关文章

  1. [android]ShareSDK——内容分享和短信验证

    前言 新版本号ShareSDK的分享和短信验证,按官网的文档,都须要加入一个<Activity></Activity>标签,而分享和短息验证的这个标签内容都一样.会冲突. 解决 ...

  2. Android实现微博分享及其注意事项

    在前面我写了两篇关于QQ和微信的分享(http://blog.csdn.net/dawanganban/article/details/42015249)(http://blog.csdn.net/d ...

  3. android 入门-微博分享

    [2015-03-11 13:40:32 - WeiboSDK] Unable to resolve target 'android-8' 修改project.properties  target=a ...

  4. shareSDK微博分享出现: 分享失败: 错误描述:Insufficient app permissions! 错误码:10014

    这个错误是由于appKey所在账号没有微博高级写入接口权限, 需要申请, 详见: http://www.mamicode.com/info-detail-936938.html

  5. 039 Android ShareSDK实现分享功能

    1.参考文献: https://blog.csdn.net/augfun/article/details/86551294 http://wiki.mob.com/sdk-share-android- ...

  6. ShareSDK 微博空间分享

    本文转载至 http://blog.csdn.net/learnios/article/details/8992346 ShareSDK微博分享空间分享新浪微博腾讯微博 第一步:首先导入ShareSD ...

  7. Android实现微信分享及注意事项

    一.获取帮助文档并下载相关资料 首先打开微信开放平台:https://open.weixin.qq.com/ 如果没有注册,请先注册并上传开发者资料等待审核. 资源中心----移动应用开发----分享 ...

  8. Android中使用ShareSDK集成分享功能

    引言      现在APP开发集成分享功能已经是非常普遍的需求了.其他集成分享技术我没有使用过,今天我就来介绍下使用ShareSDK来进行分享功能开发的一些基本步骤和注意点,帮助朋友们避免一些坑.好了 ...

  9. ShareSDK集成微信、QQ、微博分享

    1.前言 为什么要使用第三方的作为集成分享的工具呢?而不去用官方的呢?有什么区别么? 一个字"快",如果你使用官方的得一个个集成他们的SDK,相信这是一个痛苦的过程. 2.准备需要 ...

随机推荐

  1. 大话tomcat之tomcat连接mysql

    研究主题:tomcat连接mysql 一.tomcat连接mysql的两种连接方式:简单连接(不使用连接池)使用tomcat连接池 二.简单分析:(简介部分摘自一篇博客,觉得写得非常赞,读了非常有快感 ...

  2. Selenium 2.0自动化测试

    http://blog.sina.com.cn/s/blog_b6142fb401017oo6.html http://www.cnblogs.com/halia/p/3562132.html?utm ...

  3. 七、Ubuntu 关机或者重启

    重启命令:1.reboot2.shutdown -r now 立刻重启(root用户使用)3.shutdown -r 10 过10分钟自动重启(root用户使用)4.shutdown -r 20:35 ...

  4. 洛谷——P1962 斐波那契数列

    P1962 斐波那契数列 题目背景 大家都知道,斐波那契数列是满足如下性质的一个数列: • f(1) = 1 • f(2) = 1 • f(n) = f(n-1) + f(n-2) (n ≥ 2 且 ...

  5. Maven 多模块父子工程 (含Spring Boot示例)

    一.为什么要用Maven多模块 假设有这样一个项目,很常见的Java Web应用.在这个应用中,我们分了几层: Dao Service Web 对应的,在一个项目中,我们会看到一些包名: org.xx ...

  6. HTTP 状态消息 [转]

    转自:https://www.cnblogs.com/wuyongyu/p/5745875.html    HTTP 状态消息                                     ...

  7. html特殊字符编码问题导致的细节问题

    今天在写前端html时,一个a标签的链接地址,由于链接地址需要给后台传参数,因此带了部分url参数: 在html源码里写的连接地址是: http://域名/bidder/noticesearch?no ...

  8. java编程思想第四版第9章

    练习3: public class MainTest { public static void main(String args[]){ Bcycle b=new Bcycle(); b.print( ...

  9. 2017.2.21 Java中正则表达式的学习及示例

    学习网站:菜鸟教程 http://www.runoob.com/java/java-regular-expressions.html 1 正则表达式的基本使用 (1)类 正则表达式并不仅限于某一种语言 ...

  10. HTML5 Canvas 绘制星条旗

    代码: <!DOCTYPE html> <html lang="utf-8"> <meta http-equiv="Content-Type ...