android 微博功能实现,android 新浪微博实现分享功能
终于成功实现了新浪平台的分享功能。中间遇到了各种各样的问题,楼主也是醉了。
现在好多应用都实现新浪,QQ,腾讯等三方平台功能,这时一般来说会有两种解决办法。
1:利用ShareSdk;这种方式比较简单。去下载他们官方SDK,里边介绍的很详细,这里不多说。
2:利用各自官方SDK。这种方式你就需要去看下官方SDK中Demo的实现。这里那Sina分享为例详细说下
但要注意的一点是:你的应用程序的包名,签名。以及高级信息里的回调地址务必要填写:包名是你自己应用AndroidManifest.xml中的,
签名一定要用官方提供的MD5签名生成工具。至于回调地址,使用官方推荐的就可以,个人是http://www.sian.com
第二步:去下载官方Android SDK.(我会在后边给你们提供),解压后名字叫做 weibo_android_sdk-master的文件。里边有WeiboSDK,WeiBoSDKDemo, 以及
api文档。
第三步: 就是正式开发了。
1:首先准备工作
把WeiboSDK (作为你项目的Liarbery,必须)与WeiBoSDKDemo(只是官方的Demo,里边有相关实现的方法,可以看下,
非必须)导入到eclipse。 然后新建你自己的项目(假设项目名为SinaDemo),右键你的项目—prpperties—android—右侧add—选择WeiboSDK.
2: 然后具体实现,在我的项目中的main中有两个Button。(我的是点击Button1后弹出新浪登录界面,为的是拿到授权,即
Oauth2AccessToken mAccessToken。点击Button2后跳转发微博界面。你可以参考你自己的逻辑来实现。但原理相同。即拿到这
个 Oauth2AccessToken mAccessToken后才可以完成分享)
3:在你的MainActivity的Oncreate中声明这个:
AuthInfo mAuthInfo=new AuthInfo(this, Constants.APP_KEY, Constants.REDIRECT_URL,null);
其中的
/**
* 该类定义了微博授权时所需要的参数。
*
* @author SINA
* @since 2013-09-29
*/
public interface Constants {
/** 当前 DEMO 应用的 APP_KEY,第三方应用应该使用自己的 APP_KEY 替换该 APP_KEY */
public static final String APP_KEY= "1639150612";//换成你自己的
/**
* 当前 DEMO 应用的回调页,第三方应用可以使用自己的回调页。
*
*
* 注:关于授权回调页对移动客户端应用来说对用户是不可见的,所以定义为何种形式都将不影响,
* 但是没有定义将无法使用 SDK 认证登录。
* 建议使用默认回调页:https://api.weibo.com/oauth2/default.html
*
*/
public static final String REDIRECT_URL = "http://www.sina.com";//你注册应用填写的回调地址。
/**
* Scope 是 OAuth2.0 授权机制中 authorize 接口的一个参数。通过 Scope,平台将开放更多的微博
* 核心功能给开发者,同时也加强用户隐私保护,提升了用户体验,用户在新 OAuth2.0 授权页中有权利
* 选择赋予应用的功能。
*
* 我们通过新浪微博开放平台-->管理中心-->我的应用-->接口管理处,能看到我们目前已有哪些接口的
* 使用权限,高级权限需要进行申请。
*
* 目前 Scope 支持传入多个 Scope 权限,用逗号分隔。
*
* 有关哪些 OpenAPI 需要权限申请,请查看:http://open.weibo.com/wiki/%E5%BE%AE%E5%8D%9AAPI
* 关于 Scope 概念及注意事项,请查看:http://open.weibo.com/wiki/Scope
*/
public static final String SCOPE = //这个是为了实现更多的功能所需要的权限。
"email,direct_messages_read,direct_messages_write,"
+ "friendships_groups_read,friendships_groups_write,statuses_to_me_read,"
+ "follow_app_official_microblog," + "invitation_write";
}
然后:
mSsoHandler = new SsoHandler(this, mAuthInfo);
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
mSsoHandler.authorize(new AuthListener());
}
});
class AuthListener implements WeiboAuthListener {
@Override
public void onComplete(Bundle values) {
// 从 Bundle 中解析 Token
mAccessToken = Oauth2AccessToken.parseAccessToken(values);
if (mAccessToken.isSessionValid()) {
// 显示 Token
// 保存 Token 到 SharedPreferences
} else {
// 以下几种情况,您会收到 Code:
// 1. 当您未在平台上注册的应用程序的包名与签名时;
// 2. 当您注册的应用程序包名与签名不正确时;
// 3. 当您在平台上注册的包名和签名与您当前测试的应用的包名和签名不匹配时。
String code = values.getString("code");
String message = "失败";
if (!TextUtils.isEmpty(code)) {
message = message + "\nObtained the code: " + code;
}
Toast.makeText(MainActivity.this, message, Toast.LENGTH_LONG)
.show();
}
}
@Override
public void onCancel() {
Toast.makeText(MainActivity.this, "onCancel", Toast.LENGTH_LONG)
.show();
}
@Override
public void onWeiboException(WeiboException e) {
Toast.makeText(MainActivity.this,
"Auth exception : " + e.getMessage(), Toast.LENGTH_LONG)
.show();
}
}
至此: 你就在onComplete中拿到Oauth2AccessToken mAccessToken; 开始实现分享
至此,你在实现分享之前需要注册你的应用(也就两句代码)即在oncreat中
mWeiboShareAPI = WeiboShareSDK.createWeiboAPI(this, Constants.APP_KEY);
mWeiboShareAPI.registerApp();
我是Button2事件分享:
btn2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// 我btn2 事件调用的sendMultiMessage()函数。里边的String参数是我默认分享的内容。
sendMultiMessage("你好世界");
}
});
private void sendMultiMessage(String message) {
WeiboMultiMessage weiboMessage = new WeiboMultiMessage();// 初始化微博的分享消息
weiboMessage.textObject = getTextObj();
SendMultiMessageToWeiboRequest request = new SendMultiMessageToWeiboRequest();
request.transaction = String.valueOf(System.currentTimeMillis());
request.multiMessage = weiboMessage;
AuthInfo authInfo = new AuthInfo(this, Constants.APP_KEY,
Constants.REDIRECT_URL, Constants.SCOPE);
Oauth2AccessToken accessToken = mAccessToken;
String token = "";
if (accessToken != null) {
token = accessToken.getToken();
}
mWeiboShareAPI.sendRequest(this, request, authInfo, token,
new WeiboAuthListener() {//这个接口是你分享成功或失败的回调
@Override
public void onCancel() {
}
@Override
public void onComplete(Bundle arg0) {
}
@Override
public void onWeiboException(WeiboException bundle) {
});
}你还需要在你的MainACtivity中实现OnActivityResult
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if (mSsoHandler != null) {
mSsoHandler.authorizeCallBack(requestCode, resultCode, data);
}
}
最后就是权限,以及配置activity。(官方要求这样配置)
android:name="com.sina.weibo.sdk.demo.WBShareActivity"
android:configChanges="keyboardHidden|orientation"
android:screenOrientation="portrait" >
android:name="com.sina.weibo.sdk.component.WeiboSdkBrowser"
android:configChanges="keyboardHidden|orientation"
android:exported="false"
android:windowSoftInputMode="adjustResize" >
本文力求简洁明了。 不过多阐述那些定义。
感谢。
android 微博功能实现,android 新浪微博实现分享功能相关推荐
- 微信分享功能android,关于Android实现简单的微信朋友圈分享功能
1.先下载微信分享的jar包放在lib目录下,并且添加依赖, android:name=".wxapi.WXEntryActivity" android:exported=&quo ...
- 一段代码完成所有分享功能,分分钟搞定分享功能
一段代码完成所有分享功能,分分钟搞定分享功能 效果如下: 代码: <div style="width:100%; height:30px;"> <div styl ...
- Android 截屏监听(截图分享功能实现)
具体来说就是,检测到了用户在应用内有截图,弹出一个分享界面, 在截图下方添加一个二维码,进行分享. ●●● 前言 Android系统没有直接对截屏事件监听的接口,也没有广播,只能自己动手来丰衣足食, ...
- Android隐藏EditText长按菜单中分享功能探索
常见的EditText长按菜单如下 oppo 小米 需求是隐藏掉其中的分享/搜索功能,禁止将内容分享到其他应用. 最终解决方案 这里先说下最终解决方案 像华为/oppo等手机,该菜单实际是谷歌系统的即 ...
- android 微博 4.1sdk,android使用新浪微博最新SDK4.1进行第三方授权登录
android使用新浪微博最新SDK进行第三方授权登录 工具:android-studio 新浪SDK版本:4.1 1Demo参考 下载官方SDK:https://github.com/sinawei ...
- java如何调用微信功能_Java编程调用微信分享功能示例
本文实例讲述了java编程调用微信分享功能.分享给大家供大家参考,具体如下: 这篇文章介绍如何使用java开发微信分享功能,因为工作,已经开发完成,可使用. 如果想要自定义微信的分享功能,首先在自己的 ...
- android 微博 4.1sdk,Android新浪微博SDK分享功能接入
集成前准备 1. 申请APP_KEY 第三方需要接入微博SDK必须在微博开放平台上对应用进行注册,并获取APP_KEY,添加 应用的授权回调页面(Redirect URI) 2. 注册应用程序的包名和 ...
- android微博签名错误,Android 微博登录“sso package or sign error” 错误解决方案
新版微博客户端升级功能,无线应用使用sso授权必须填写包名.签名.否则会遇到sso package or sign error的报错,SSO授权暂时只针对iOS及Android端. 如果在使用SSO授 ...
- android分享到新浪微博客户端吗,Android调用手机新浪微博客户端分享
通过Action_Send以及Intent.createChoose()调用系统分享功能时,是可以显示当前手机上已安装的能分享的客户端列表,当然,开发者也可以指定单独某一个平台来分享,代码如下: pu ...
- Android调用手机新浪微博客户端分享
通过Action_Send以及Intent.createChoose()调用系统分享功能时,是可以显示当前手机上已安装的能分享的客户端列表,当然,开发者也可以指定单独某一个平台来分享,代码如下: pu ...
最新文章
- 强大的表格控件handsometable,结合vue
- JZOJ 5898. 【NOIP2018模拟10.6】距离统计
- GDI+ 使用指南(basic guiding of GDI plus )
- postman高级用法--断言(Response body:JSON value check)
- 小区物业管理系统设计思想+源码
- 简单循迹小车实验心得_循迹小车实训报告
- 数字人民币渐行渐近丨2021中国区块链产业发展报告
- YOLOv5、v7改进之三十九:引入改进遮挡检测的Tri-Layer插件 | BMVC 2022
- win10桌面计算机打不开,win10开机后桌面无响应,win10开机后啥都打不开
- 超图android离线瓦片,android端实践openlayers离线地图
- 一款 Material Design 风格的妹子福利 App.
- WIN10 +pytorch版yolov3训练自己数据集
- 信用评分模型中的滚动率分析
- 分布式软总线模块总结
- 侍魂胧月传说服务器维护中,侍魂胧月传说手游3月2日停机维护更新公告
- 数据同步工具—DataX部署使用
- 滤波器基础03——Sallen-Key滤波器、多反馈滤波器与Bainter陷波器
- java实现看门狗_Watchdog看门狗分析
- Activiti7学习之六查看流程历史信息、businessKey
- java的jce框架_Java Cryptographic Extension (JCE) 框架的核心应用
热门文章
- 刽子手c语言,麻烦刽子手程序在C
- 第52届世界标准日,细数我国密码标准化工作成果
- 技术系统进化法则包括_TRIZ理论八大技术系统进化法则.doc
- SOSO移动服务大厅项目分析
- CSS 引入的三种方式
- Unable to launch WebDriverAgent because of xcodebuild failure: “iproxy exited with code ‘234‘“
- 【POP3协议介绍】
- ABAP MIR7预制凭证BAPI
- SAP 采购发票预制 MIR7 <转载>
- ThingJS 开发使用感悟