注:如果集成了百度的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分享 实践的更多相关文章

  1. linux - 使用curl实现新浪天气API应用

    新浪天气API的使用方法: API地址:http://php.weather.sina.com.cn/xml.php?city=%B1%B1%BE%A9&password=DJOYnieT82 ...

  2. 新浪新闻API

    新浪新闻API ustcmio 关注 2017.01.15 20:44* 字数 536 阅读 2479评论 2喜欢 7 新浪新闻的API:1.访问手机新浪网https://sina.cn/?from= ...

  3. 根据新浪天气API获取各地天气状况(Java实现)

    原文出自 参考网址(重要) http://blog.csdn.net/cyxlzzs/article/details/7602469  新浪 http://blog.csdn.net/l_ch_g/a ...

  4. [threeJs][新浪股票api][css3]3D新浪财经数据-最近A股涨的也太疯了......

    使用threeJS搭配新浪股票财经API 在线: http://wangxinsheng.herokuapp.com/stock 截图: A股涨幅榜[一片红10%] 检索[单击添加到自选内,自选使用l ...

  5. 新浪 股票 API

    新浪期货数据接口 [例子]http://hq.sinajs.cn/list=M0豆粕连续 M0 返回值如下:var hq_str_M0="豆粕连续,145958,3170,3190,3145 ...

  6. 新浪天气api

    package com.smartdot.dcu; /** * java获取新浪天气预报代码 */ import java.io.FileNotFoundException; import java. ...

  7. 新浪新闻API接口

    头条 http://api.sina.cn/sinago/list.json?channel=news_toutiao推荐 http://api.sina.cn/sinago/list.json?ch ...

  8. 获取新浪天气api显示天气情况(转)

    直接上一个html的demo <!doctype html> <html class="no-js fixed-layout"> <head> ...

  9. Android 新浪博客分享问题总结

     分类: android(33)  版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[-] 我遇到BUG 1    sso package or singn error Bug2 ...

随机推荐

  1. css鼠标移动到文字上怎样变化背景颜色

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. 矩阵分解(Matrix Factorization)与推荐系统

    转自:http://www.tuicool.com/articles/RV3m6n 对于矩阵分解的梯度下降推导参考如下:

  3. Struts2中jsp前台传值到action后台的三种方式以及valueStack的使用

    struts2中的Action接收表单传递过来的参数有3种方法: 如,登陆表单login.jsp: <form action="login" method="pos ...

  4. 第二百九十节,MySQL数据库-MySQL命令行导出导入数据库,数据库备份还原

    MySQL命令行导出导入数据库,数据库备份还原 MySQL命令行导出数据库:1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录如我输入的命令行:cd C:\Program ...

  5. (转)音频输出PCM与LPCM有什么不同

     多声道LPCM:无损音轨原始存在格式,概念上等效于wave文件,并不需要运算解码,可直接输入功放进行DA转换,光纤和同轴接口只能传输2声道LPCM,多声道LPCM需要HDMI接口传输.   PCM: ...

  6. android项目中的拍照和本地图片截图

    1,得到保存截图文件的地址 private static final String IMAGE_FILE_LOCATION = Environment.getExternalStorageDirect ...

  7. 学习:erlang开源项目。

    一.RabbitMQ:AMQP消息服务器 . 二.ejabberd是的Jabber / XMPP协议的即时通讯服务器. 三.cowboy/mochiweb.

  8. tRNA 二级结构预测可视化

    tRNAdb 收录了来自104个物种的623条tRNA 序列,从数据库中下载对应物种的tRNA 序列和二级结构,以人为例 打开下面的链接 http://trna.bioinf.uni-leipzig. ...

  9. 如果返回结构体类型变量(named return value optimisation,NRVO)

    貌似这是一个非常愚蠢的问题,因为对于具有良好素质的程序员而言,在C中函数返回类型为结构体类型是不是有点不合格,干嘛不用指针做传入传出呢? 测试环境:Linux IOS 3.2.0-45-generic ...

  10. ADO 调用Execute失败,异常码DB_E_DATAOVERFLOW

    今天,通过ADO接口往PG数据库中插入数据,结果数据始终不能插入到数据库的表中,执行insert语句后,返回失败,错误码DB_E_DATAOVERFLOW. DB_E_DATAOVERFLOW:命令中 ...