注:如果集成了百度的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. 数据库 Oracle监听实例详解

    Oracle实例别名 IMCDB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = )) (CONNECT_D ...

  2. 以下哪个Hibernate主键生成策略是实现主键按数值顺序递增的?

    A.increment B.identity C.sequence D.native 解答:A

  3. Web 浏览

    Web 浏览为了更好地了解 CGI 的概念,让我们点击一个超链接,浏览一个特定的网页或 URL,看看会发生什么. 您的浏览器联系上 HTTP Web 服务器,并请求 URL,即文件名.Web 服务器将 ...

  4. udp编程中,一次能发送多少个bytes为好?

    在进行UDP编程的时候,我们最容易想到的问题就是,一次发送多少bytes好? 当然,这个没有唯一答案,相对于不同的系统,不同的要求,其得到的答案是不一样的,我这里仅对    像ICQ一类的发送聊天消息 ...

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

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

  6. html学习笔记五

    关于服务端和client的校验问题 上述的表格信息填写后发现,即使有些信息不添,依旧能够提交 所以针对此问题,我们要在client进行数据填写信息的增强型校验(必添单元,必须填写有效信息,否则无法提交 ...

  7. 初次使用ets

    一.new(Name, Options) -> tid() | atom(),创建ets表. Options = [Option], 目测常用的属性, {keypos, Pos}:指定key的位 ...

  8. TF42064: The build number already exists for build definition error in TFS2010

    In TFS2008, deleting a build removes it from the database itself. If you delete a build called Build ...

  9. jquery中判断选择器,找没找到元素用$().size()==0

    jquery中判断选择器,找没找到元素用$().size()==0

  10. [译]Unity3D内存管理——对象池(Object Pool)

    原文地址:C# Memory Management for Unity Developers (part 3 of 3), 其实从原文标题可以看出,这是一系列文章中的第三篇,前两篇讲解了从C#语言本身 ...