注:如果集成了百度的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. Windows与Linux下进程间通信技术比较

    一般我们写的程序都是以单个进程的方式来运行的,比较少涉及到多进程.特别是在windows下,因为Windows是按照线程来分配CPU时间片的,线程是最小的调度单位,所以在Windows下更多的用到多线 ...

  2. android EditText设置光标、边框和图标,以及限制输入

    控制边框形状,先在drawable中建一个xml文件:shape.xml <?xml version="1.0" encoding="utf-8"?> ...

  3. MATLAB中常用的排列、组合、阶乘函数

    1.求n的阶乘,方法如下:a.factorial(n)b.gamma(n+1)c.v='n!'; vpa(v) 2.求组合(数),方法如下:a.combntns(x,m)    列举出从n个元素中取出 ...

  4. JQueryMobile开发必须的知道的知识

    移动Web页面的基本组成元素: 页面头部,页面内容,页面底部 <!DOCTYPE html> <html> <head> <title>My Page& ...

  5. UML总结--总体架构

    架构图(一): 架构图(二): 转自:http://blog.csdn.net/lsh6688/article/details/5931706

  6. windows下定时任务设置

    Linux 系统可以通过crontab -e 设置定时任务,Windows系统没有crontab命令,但是Windows系统有跟crontab命令比较接近的命令: schtasks 命令. # 设置定 ...

  7. php -- realpath($path) 函数

    PHP realpath路径函数会检测$path指向的目标文件(或文件夹)是否真实存在,相当于调用了file_exists($path). 1.如果目标文件存在且不是符号连接(linux下俗称“软链接 ...

  8. CentOS下的一些基础问题解答

    1. 在/etc/passwd中某一行信息为“Linux01:x:505:505:/home/linux12:/bin/bash”,由此可知哪些信息? 用户名为linux01,需要密码登陆,用户ID为 ...

  9. C#接口之IEnumerable,IEnumerator

    IEnumerable 截图来源于https://msdn.microsoft.com/zh-cn/library/system.collections.ienumerable.getenumerat ...

  10. Windows性能监视器

    前端时间在做动态目标监控,应用程序需要考虑大数据量和多用户并发的操作,系统的性能是解决方案实施性的重要度量.这里简单的记录下Windows中性能监视查看和简单分析. 一般操作系统性能主要涉及到的问题主 ...