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. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---52

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

  2. js中eval()和$.parseJSON()的区别

    之前自己一直对ajax不是特别的熟悉,所以一般都很少用这个去写功能,但是最近这个项目中用到了,用ajax异步传数据,json传数据这个时候就需要去解析传过来的数据了,eval()和$.parseJSO ...

  3. 51nod 1006 最长公共子序列Lcs 【LCS/打印path】

    1006 最长公共子序列Lcs  基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 给出两个字符串A B,求A与B的最长公共子序列(子序列不要求是连续的). ...

  4. LOJ N!在不同进制的位数

    lightoj1045 - Digits of Factorial (N!不同进制的位数) 对于一个B进制的数,只需要对其取以B的对数就可以得到他在B进制情况下的位数(取了对数之后可能为小数,所以还需 ...

  5. 洛谷 P2089 烤鸡【DFS递归/10重枚举】

    [链接]:https://www.luogu.org/problemnew/show/P2089 题目描述 猪猪Hanke特别喜欢吃烤鸡(本是同畜牲,相煎何太急!)Hanke吃鸡很特别,为什么特别呢? ...

  6. Swift 基础部分(建议掌握OC字符串知识的翻阅)

    更新说明: Swift 目前已经发布到4.0版本了,以前写的这整个Swift学习系列的文章,有很多的不足之处,我会重新整理整个系列文章,也是相当于重新复习一遍Swift,后面系列文章的改动之处全都会做 ...

  7. 从 Git Gui 管理的Repository(库) 提交更改到 Bonobo服务器管理的Repository(库)

    要提交更改到Bonobo服务器管理的某个Repository(库),必须先得在Bonobo服务器上有此Repository(库)——简直就是废话.那么怎么才能这个Repository(库)变出来呢?其 ...

  8. java中的堆、栈和常量池简介

    一.它们各自存放的数据类型: 堆:存放所有new出来的对象. 栈:存放基本类型的变量数据和对象的应用,对象(new出来的对象)本身并不存在栈中,而是存放在堆中或者常量池中(字符串常量对象存放在常量池中 ...

  9. hdu1003(C++)解法1

    #include<iostream>using namespace std;int Maxsum(int*a, int n);int main(){ int T,n,i,j,count=0 ...

  10. cocos2d-x 学习记录

    不积跬步,无以至千里.不积小流,无以成江海. 開始学习cocos2d-x ,路漫漫其修远兮.加油!