新浪通过API分享 实践
注:如果集成了百度的Frontia和SinaCoreSDK, 那么SSO会出现包冲突
https://github.com/sinaweibosdk/weibo_android_sdk/issues/56
要先获取API发送的权限
public class ShareToSinaActivity extends DFActivity {
private WeiboAuthHandler weiboAuthHandler;
private String shareTitle, shareContent, shareUrlLink, shareImageLink;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
shareTitle = this.getIntent().getExtras().getString("shareTitle");
shareContent = this.getIntent().getExtras().getString("shareContent");
shareImageLink = this.getIntent().getExtras().getString("shareImageLink");
shareUrlLink = this.getIntent().getExtras().getString("shareUrlLink");
}
public void sendShareMessageWithAPI() {
// 获取当前已保存过的 Token
Oauth2AccessToken mAccessToken = SinaAccessTokenKeeper.readAccessToken(this);
if (mAccessToken != null && mAccessToken.isSessionValid()) {
/*
用于获取微博信息流等操作的API
*/
StatusesAPI mStatusesAPI = new StatusesAPI(mActivity, AppConstants.KEY_SINA_WEIBO, mAccessToken);
String strContent = shareTitle + " " + shareContent + " " + shareUrlLink + "(分享自@穿帮时尚)";
mStatusesAPI.uploadUrlText(strContent, shareImageLink, null, null, null, mListener);
} else {
SinaAccessTokenKeeper.clear(mActivity);// 清理新浪Token
weiboAuthHandler = new WeiboAuthHandler(mActivity);
weiboAuthHandler.authorize(false);
}
}
/**
* 当 SSO 授权 Activity 退出时,该函数被调用。 当用户登录结束、注册结束时,调用该函数
*
* @see {@link android.app.Activity#onActivityResult}
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// requestCode标示请求的标示 resultCode表示有数据
/**
* 微博登录结果
*/
weiboAuthHandler.authorizeCallBack(requestCode, resultCode, data);
}
/**
* 微博 OpenAPI 回调接口。
*/
private RequestListener mListener = new RequestListener() {
@Override
public void onComplete(String response) {
if (!TextUtils.isEmpty(response)) {
LogUtil.i(tag, response);
if (response.startsWith("{\"statuses\"")) {
// 调用 StatusList#parse 解析字符串成微博列表对象
SinaStatusList statuses = SinaStatusList.parse(response);
if (statuses != null && statuses.total_number > 0) {
// AppUtils.showToast(mActivity, "获取微博信息流成功, 条数: " + statuses.statusList.size());
}
} else if (response.startsWith("{\"created_at\"")) {
// 调用 Status#parse 解析字符串成微博对象
SinaStatus status = SinaStatus.parse(response);
AppUtils.showToast(mActivity, "分享成功");
} else {
log("Sina Share " + response);
}
}
finish();
}
@Override
public void onWeiboException(WeiboException e) {
LogUtil.e(tag, e.getMessage());
SinaErrorInfo info = SinaErrorInfo.parse(e.getMessage());
log("Sina Share " + info.toString());
finish();
}
};
}
新浪通过API分享 实践的更多相关文章
- linux - 使用curl实现新浪天气API应用
新浪天气API的使用方法: API地址:http://php.weather.sina.com.cn/xml.php?city=%B1%B1%BE%A9&password=DJOYnieT82 ...
- 新浪新闻API
新浪新闻API ustcmio 关注 2017.01.15 20:44* 字数 536 阅读 2479评论 2喜欢 7 新浪新闻的API:1.访问手机新浪网https://sina.cn/?from= ...
- 根据新浪天气API获取各地天气状况(Java实现)
原文出自 参考网址(重要) http://blog.csdn.net/cyxlzzs/article/details/7602469 新浪 http://blog.csdn.net/l_ch_g/a ...
- [threeJs][新浪股票api][css3]3D新浪财经数据-最近A股涨的也太疯了......
使用threeJS搭配新浪股票财经API 在线: http://wangxinsheng.herokuapp.com/stock 截图: A股涨幅榜[一片红10%] 检索[单击添加到自选内,自选使用l ...
- 新浪 股票 API
新浪期货数据接口 [例子]http://hq.sinajs.cn/list=M0豆粕连续 M0 返回值如下:var hq_str_M0="豆粕连续,145958,3170,3190,3145 ...
- 新浪天气api
package com.smartdot.dcu; /** * java获取新浪天气预报代码 */ import java.io.FileNotFoundException; import java. ...
- 新浪新闻API接口
头条 http://api.sina.cn/sinago/list.json?channel=news_toutiao推荐 http://api.sina.cn/sinago/list.json?ch ...
- 获取新浪天气api显示天气情况(转)
直接上一个html的demo <!doctype html> <html class="no-js fixed-layout"> <head> ...
- Android 新浪博客分享问题总结
分类: android(33) 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 我遇到BUG 1 sso package or singn error Bug2 ...
随机推荐
- c# dataTable 合并两个列到一个新列中
public static DataTable UniteDataTableColumns(DataTable dt, String newColumnName, string ColumnName1 ...
- 事件总线demo
经过几天的努力拜读大牛高手文章,终于对事件总线有所了解,特此记录下来,以免忘记 1.定义相关的接口: A 事件接口 public interface IDomainEvent { DateTime ...
- java基础复习二——面向对象一
面向对象三大特性:封装,继承,多态 类:对象的蓝图,生成对象的模板,是对一类事物的描述,是抽象的概念上的定义 对象:是实际存在的该类事物的每个个体,也称为实例 类之间三种关系:依赖关系(uses-a) ...
- 关于Cocos2d-x中打包图集和使用方法
准备的过程 1.打开TextruePacker软件 2.把游戏中要使用的图片拖到TextruePacker里面,TextruePacker会自动帮我们排序,让所有小图变成一个大图 3.点击Publis ...
- Python3.4下使用sqlalchemy
一. 1.用sudo apt-get install python3-numpy之后,会默认把numpy安装到 /usr/lib/python3/dist-packages目录下,而且版本比较低. ...
- (转)SDL 1.2 to 2.0 Migration Guide--SDL1.2更新到SDL2.0指南
SDL 1.2 to 2.0 Migration Guide 目录 SDL 1.2 to 2.0 Migration Guide Translations Introduction Overview ...
- KO 数据库分类系统介绍
KEGG Orthology数据库不仅对基因的功能进行了扩充和整理,还对功能进行了细致的分类: 针对基因的功能,共有3级分类,第一级有6个大类: 打开下面这个链接 http://www.genome. ...
- CentOS下添加sudo用户
一 .sodo的使用 1.1 关于sudo Sudo是linux系统中,非root权限的用户提升自己权限来执行某些特性命令的方式,它使普通用户在不知道超级用户的密码的情况下,也可以暂时的获得root权 ...
- PL/SQL中decode函数简介
今天看别人的SQL时看这里面还有decode()函数,以前从来没接触到,上网查了一下,还挺好用的一个函数,写下来希望对朋友们有帮助哈! decode()函数简介: 主要作用:将查询结果翻译成其他值(即 ...
- localhost 和 127.0.0.1
转自:http://ordinarysky.cn/?p=431localhost与127.0.0.1的区别是什么?相信有人会说是本地ip,曾有人说,用127.0.0.1比localhost好,可以减少 ...