注册 新浪开放平台的开发者账户,创建测试应用,得到应用的AppKey和设定一个用来发布的官方地址下载示例,引入sdk,具体的方式开发文档中有详细说明。//需要引入的包

import com.weibo.sdk.android.Oauth2AccessToken;
import com.weibo.sdk.android.Weibo;
import com.weibo.sdk.android.WeiboAuthListener;
import com.weibo.sdk.android.WeiboDialogError;
import com.weibo.sdk.android.WeiboException;
import com.weibo.sdk.android.api.StatusesAPI;
import com.weibo.sdk.android.keep.AccessTokenKeeper;
import com.weibo.sdk.android.net.RequestListener;
private static HiWorld hiWorld = null;// 新浪分享 file是路径public static void shareSina(final String mContent, final String filePath) {// public static void shareSina(String mContent, String filePath) {hiWorld.runOnUiThread(new Runnable() {public void run() {Log.e("share sina", "okey enter share");// if(filePath == null){// filePath = "";// }Log.e("share sina mContent", "" + mContent.trim().toString()+ "");Log.e("share sina filePath", "" + filePath.trim().toString()+ "");hiWorld.mContent = mContent + System.currentTimeMillis();hiWorld.filePath = filePath;mWeibo = Weibo.getInstance(CONSUMER_KEY, REDIRECT_URL);Log.e("weibo instance", mWeibo.toString());mWeibo.authorize(hiWorld, hiWorld.new AuthDialogListener());Log.e("weibo authorize", "okey ? weibo authorize");}});}
 // 新浪微博认证监听class AuthDialogListener implements WeiboAuthListener {@Overridepublic void onComplete(Bundle values) {String token = values.getString("access_token");String expires_in = values.getString("expires_in");Log.e("AuthDialogListener", "onComplete token:" + token+ ", expires_in:" + expires_in);HiWorld.accessToken = new Oauth2AccessToken(token, expires_in);if (HiWorld.accessToken.isSessionValid()) {String date = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(new java.util.Date(HiWorld.accessToken.getExpiresTime()));AccessTokenKeeper.keepAccessToken(HiWorld.this, accessToken);Toast.makeText(HiWorld.this, "认证成功", Toast.LENGTH_SHORT).show();// 发博分享StatusesAPI api = new StatusesAPI(HiWorld.accessToken);Log.e("weibo api", "okey ? weibo api");// Log.e("accessToken.getToken()",accessToken.getToken());if (!TextUtils.isEmpty(accessToken.getToken())) {if (TextUtils.isEmpty(mContent)) {Toast.makeText(hiWorld, "请输入内容!", Toast.LENGTH_LONG).show();return;}if (!TextUtils.isEmpty(filePath)) {api.upload(mContent, filePath, "", "",hiWorld.new SinaWBUpdateListener());Toast.makeText(hiWorld, "api访问请求已执行,请等待结果",Toast.LENGTH_LONG).show();hiWorld.finish();} else {// Just update a text weibo!api.update(mContent, "", "",hiWorld.new SinaWBUpdateListener());Toast.makeText(hiWorld, "api访问请求已执行", Toast.LENGTH_LONG).show();}}}}@Overridepublic void onError(WeiboDialogError e) {Toast.makeText(hiWorld.getApplicationContext(),"Auth error : " + e.getMessage(), Toast.LENGTH_LONG).show();}@Overridepublic void onCancel() {Toast.makeText(hiWorld.getApplicationContext(), "Auth cancel",Toast.LENGTH_LONG).show();}@Overridepublic void onWeiboException(WeiboException e) {Toast.makeText(hiWorld.getApplicationContext(),"Auth exception : " + e.getMessage(), Toast.LENGTH_LONG).show();}}// 新浪微博更新监听class SinaWBUpdateListener implements RequestListener {public void onComplete(String response) {runOnUiThread(new Runnable() {@Overridepublic void run() {Toast.makeText(HiWorld.this, R.string.weibosdk_send_sucess,Toast.LENGTH_LONG).show();}});finish();}public void onIOException(IOException e) {}public void onError(final WeiboException e) {System.out.println(e);runOnUiThread(new Runnable() {@Overridepublic void run() {Toast.makeText(HiWorld.this,String.format(HiWorld.this.getString(R.string.weibosdk_send_failed)+ ":%s", e.getMessage()),Toast.LENGTH_LONG).show();Log.e("e.getMessage()", e.getMessage()+ " ,hiWorld.filePath:" + hiWorld.filePath);}});}}

参考的官方文档:

1.      Weibo: 微博API 接口类,对外提供weiboapi的调用,包括登录,API调用,微博分享等功能。

2.      Oauth2AccessToken:封装了“access_token”,“expires_in”,"refresh_token",并提供了

他们的管理功能

3.      Utility:工具类,提供了url 的encode,decode方法。

4.      AsyncWeiboRunner:微博api异步执行类,封装了回调接口,通过创建线程来调用Weibo中的接口方法。

5.      HttpManager: 负责与服务器进行通讯的类,封装了GET、POST请求方式,并对外提供图片上传等功能

6.      WeiboAPI: 该类及其子类封装了新浪微博对外提供的api接口方法。

7.      WeiboException:微博异常封装类,封装了微博的各个异常。

8.      SsoHandler:单点登录 认证类,对外提供了sso登录认证的方法。

获取weibo对象

接口名称

com.weibo.sdk.android.Weibo.getInstance(String appKey,  String redirectUrl)

参数名称

作用

appKey

第三方应用的appkey(在新浪微博开放平台上创建应用时自动分配),

redirectUrl

第三方应用的回调页

返回结果

Weibo实例对象

授权认证

授权认证

接口名称

com.weibo.sdk.android.Weibo.authorize(Context context,  WeiboAuthListenerlistener)

参数名称

作用

context

当前activity对象,用于获取当前网络状态,弹出对话框等。

listener

授权对话框回调接口。处理授权完成、授权失败、授权取消等事件

获取Oauth2AccessToken对象

接口名称

com.weibo.sdk.android. Oauth2AccessToken (String accessToken, String expires_in)

参数名称

作用

accessToken

通过认证后从服务器获取到的访问令牌

expires_in

认证有效期

返回结果

Oauth2AccessToken实例对象

StatusesAPI 构造函数

接口名称

com.weibo.sdk.android.api.StatusesAPI(Oauth2AccessTokenaccesssToken)

参数名称

作用

accesssToken

Oauth2AccessToken对象

分享文字到微博

接口名称

com.weibo.sdk.android.api.StatusesAPI.update(String content, String lat, String lon, RequestListener listener)

参数名称

作用

content

要分享的微博内容,限140个字

Lat、lon

经纬度,格式为:ddd.ddddd °【度 . 度】格式

listener

用于异步返回服务器的返回结果

分享文字和图片到微博

接口名称

com.weibo.sdk.android.api.StatusesAPI.upload(String content, String file, String lat, String lon, RequestListener listener)

参数名称

作用

content

要分享的微博内容,限140个字

file

要上传的照片本地所在路径

Lat、lon

经纬度,格式为:ddd.ddddd °【度 . 度】格式

listener

用于异步返回服务器的返回结果

SSOHandler构造函数

接口名称

void SSOHandler (Activity activity,Weibo weibo)

参数名称

作用

activity

发起认证的Activity

weibo

weibo对象

SSO回调

接口名称

void authorizeCallBack(int requestCode, int resultCode, Intent data)

使用说明

在Authorize Activity里覆写onActivityResult(int requestCode, int resultCode, Intent data),在方法中使用SSOHandler对象调用authorizeCallBack(int requestCode, intresultCode, Intent data)

SSO 认证

接口名称

void authorize (WeiboAuthListenerlistener weiboAuthListener)

使用说明

发起sso认证时调用此方法

参数名称

作用

weiboAuthListener

用于异步返回服务器的返回结果

Android新浪微博分享实现相关推荐

  1. android 新浪微博签名工具,Android 集成新浪微博分享及授权 (上)

    Android 新浪微博分享及授权 在开发中遇到了各种坑....所以分享一下  希望能给大家贡献点经验 本文使用的开发的环境是 eclipse 本文叙述的新浪微博分享及其授权的内容分为两块 : 一 新 ...

  2. Android 集成新浪微博分享及授权 (上)

    Android 新浪微博分享及授权 在开发中遇到了各种坑....所以分享一下  希望能给大家贡献点经验 本文使用的开发的环境是 eclipse 本文叙述的新浪微博分享及其授权的内容分为两块 : 一 新 ...

  3. android 分享到微博客户端,Android APP集成新浪微博分享功能

    本文为大家分享了新浪微博分享功能集成,供大家参考,具体内容如下 直接导入weibosdkcore.jar:适用于只需要授权.分享.网络请求框架功能的项目. 无论使用哪一种方式,都需要先将demo中li ...

  4. 安卓 android一键分享 新浪微博 腾讯微博,qq空间,qq,人人网

    安卓 android一键分享 新浪微博 腾讯微博,qq空间,qq,人人网 附源码:  http://download.csdn.net/detail/zjgwxh/8678809

  5. android授权新浪微博 服务端,Android 集成新浪微博分享及授权

    本文使用的开发的环境是 eclipse 本文叙述的新浪微博分享及其授权的内容分为两块 : 一 新浪提供的 WeiboSDKDemo 二 嵌入到自己的应用当中去 第一部分 运行成功 WeiboSDKDe ...

  6. android开发分享到微信,Android开发之微信分享到好友,朋友圈(示例代码)

    3. 快速集成 第二步:配置AndroidManifest.xml 下面清单文件的配置是全部的,没有的平台就是不需要配置 1.添加权限 2.添加activity信息 (注意: tencent后面的ap ...

  7. [deviceone开发]-QQ分享、微信分享和新浪微博分享

    一.简介 该demo主要实现QQ分享.微信分享和新浪微博分享.(调试包请到论坛扫描对应二维码下载) 二.效果图 三.相关讨论 http://bbs.deviceone.net/foru... 四.源码 ...

  8. Android APP分享功能实现 .

    [Android应用开发详解]第01期:第三方授权认证(一)实现第三方授权登录.分享以及获取用户资料 安卓分享功能也可以使用mob提供的SDK来开发分享功能,短信验证功能.http://www.mob ...

  9. android原生分享功能,Android原生分享到微博、微信等平台的实现方式

    在这个版本功能涉及到Android分享方式的变更,需求要求: 分享只支持新浪微博.微信,其他方式均去掉. 为了更好的测试还是要看下Android分享实现分享的方式,然后才能更好地评估测试时间和设计测试 ...

最新文章

  1. 线段树求矩形面积并 扫描线+离散化
  2. 移动端高清、多屏适配方案
  3. android之权限大全
  4. WordPress强制跳转https教程
  5. IT运维管理为重,从业务需求看网管系统的选择
  6. POJ2492A Bug's Life【并查集+根节点偏移】
  7. cad2012打开后闪退_win10系统安装cad2012一直闪退的解决方法
  8. 2021厦门湖滨中学高考成绩查询,厦门各高中本科上线率2020
  9. java中成员变量和局部变量的区别
  10. recycleview添加item点击事件--作业三
  11. 记录自已学习之ARM汇编语言之bic和orr
  12. 怎么解决服务器延迟问题
  13. CPU降频实现原理与试验数据
  14. SOA系列之 什么是SOA?
  15. datastage 如何把db2的varchar列数据抽取到mysql的longtext列
  16. 菜鸡服务器不支持接力,行业首发!菜鸡新功能游戏接力上线,将开云游戏新赛道...
  17. 动态规划——割绳子问题
  18. 本周总结-付金田-2018年3月18日
  19. Alert The AC power adapter wattage and type cannot be determined. (戴尔电脑开机)
  20. 密码嗅探、中间人攻击

热门文章

  1. python扫雷程序
  2. 核心转储文件的设置和查看
  3. 在博客和论坛发外链还有用吗?
  4. 搜狗2012 9 23校园招聘会笔试题
  5. DataScience:风控场景之金融评分卡模型的简介、构建(逻辑回归)开发(转评分卡)、使用过程(线上实现)、完整流程之详细攻略
  6. Hyper-v系列---【windows系统如何开启Hyper-v?】
  7. html调整中文文字字间距,css怎么调整字间距?
  8. 《鱿鱼游戏》中的 AI 是绝对公平的吗?
  9. ExoPlayer详解——高级主题(官方文档)
  10. IRIG-B高精度B码解码 同步精度10ns