官方网站上面提供的Sdk是好好的,但是教程是严重滞后,使用的教程还是Oauth1.0的,2.0的教程网上介绍的也不多,前一段搜到郭少瑞分享的源代码程序,但是怎么也执行不了,后来仔细梳理了一下,发现他的方法和官网提供的借口调用友一个冲突的地方,只有请求授权,没有获取授权Access Token的步骤,所以自己重新写了一个Demo供大家参考。

据日的API文档和链接,大家可以去新浪官网里面查找,以下用到的URL定式,以及返回值的截取的规则你也可以根据官方文档自己总结。

链接地址:http://open.weibo.com/wiki/%E6%8E%88%E6%9D%83%E6%9C%BA%E5%88%B6%E8%AF%B4%E6%98%8E

注意:因为官方Sdk里面使用了Json,所以我们不要调用第三方Json包库,否则会发生冲突,发送微博函数中,

mb.callWeiboAPI("2/statuses/update",{"status":message,"access_token":accessToken},"POST","callWeiboApiResult","callWeiboApiError");

会报错,提示Json dismatch

代码如下:

package
{import com.sina.microblog.MicroBlog;import flash.display.Sprite;import flash.display.StageAlign;import flash.display.StageScaleMode;import flash.events.Event;import flash.events.LocationChangeEvent;import flash.geom.Rectangle;import flash.media.StageWebView;import flash.net.URLLoader;import flash.net.URLRequest;public class TestSinaWeibo extends Sprite{//APP IDprivate var appKey:String = "你的App Id";//APP 秘钥private var appSecret:String = "你的 App 密钥";//新浪微薄接口封装private var mb:MicroBlog;//令牌private var accessToken:String;//微博信息private var message:String = "这是我发送的第一条成功的测试微博";public function TestSinaWeibo(){super();stage.align = StageAlign.TOP_LEFT;stage.scaleMode = StageScaleMode.NO_SCALE;//初始化新浪微博封装对象if(mb == null){mb = new MicroBlog();mb.consumerKey = appKey;mb.consumerSecret = appSecret;}if(accessToken != null){mb.access_token = accessToken;sendNewWeibo();}else{//使用webView提请授权Tokenvar url:String = "https://api.weibo.com/oauth2/authorize";url += "?client_id=" + appKey;url += "&redirect_uri=http://www.tech-mx.com";url += "&display=mobile";
//                url += "&response_type=code";var viewWidth:int = stage.stageWidth;var viewHeight:int = stage.stageHeight;var webView:StageWebView = new StageWebView();webView.stage = stage;webView.viewPort = new Rectangle(0,0,viewWidth,viewHeight);webView.loadURL(url);webView.addEventListener(Event.COMPLETE,onComplete);}}protected function onComplete(event:Event):void{//获取授权链接返回值lcvar myWebView:StageWebView = event.target as StageWebView;var lc:String = myWebView.location;trace("url:"+lc);//从返回值lc获取Codevar code:String = lc.slice(lc.indexOf("=")+1,lc.length);trace("Code:"+code);if(lc.indexOf("code=")>=0){ //评比非正常返回链接情况//获取请求授权后,获取授权过的Access Tokenvar url:String = "https://api.weibo.com/oauth2/access_token";url += "?client_id=" + appKey;url += "&client_secret=" + appSecret;url += "&grant_type=authorization_code";url += "&code="+code;url += "&redirect_uri=http://www.tech-mx.com";var ur:URLRequest = new URLRequest(url);ur.method = "POST"; //必须是POST方法var ul:URLLoader = new URLLoader(ur);ul.addEventListener(Event.COMPLETE,ulOnComplete);}}protected function ulOnComplete(event:Event):void{var ul:URLLoader = event.target as URLLoader;var str:String = ul.data; //获取返回值Access Tokentrace("json:"+str);accessToken = str.slice(str.indexOf(":\"")+2,str.indexOf("\",")); //获取Access Tokentrace("accessToken:"+accessToken);sendNewWeibo();}private function sendNewWeibo():void{mb.addEventListener("callWeiboApiResult",callWeiboApiResultHandler);mb.addEventListener("callWeiboApiError",callWeiboApiResultHandler);mb.callWeiboAPI("2/statuses/update",{"status":message,"access_token":accessToken},"POST","callWeiboApiResult","callWeiboApiError");}/**调用API的结果*/private function callWeiboApiResultHandler(event:Event):void{if(event.type == "callWeiboApiResult"){trace("发布成功");}else{trace("发布失败");}}}
}

转载于:https://www.cnblogs.com/flashbird/p/3346542.html

新浪微博Sdk使用——air/移动应用相关推荐

  1. 使用 Android Studio 跑新浪微博SDK Demo遇到的问题及解决

    概述 这是新浪微博官方 Android SDK Demo 使用 Android Studio 导入.编译并运行通过的版本. 源码:WeiboSdkDemo 官方项目请点击: weibo_android ...

  2. java 微博sdk_Java基于新浪微博SDK实现发微博的功能

    背景 最近用实现了一个简单的发微博的功能. 新浪微博的SDK已经经历了多次更新,而网上的资料.教程大多还是基于旧版本的,很多细节上有了一些变化.本文将基于最新的新浪微博SDK介绍发微博的过程. 简介 ...

  3. iOS 平台 接入新浪微博 SDK 的坑(registerApp 的问题)

    转载:http://leenjewel.github.io/blog/2015/01/08/ios-ping-tai-cocos2d-x-xiang-mu-jie-ru-xin-lang-wei-bo ...

  4. 新浪微博SDK抛出异常-[__NSDictionaryM weibosdk_WBSDKJSONString]:

    不得不说 新浪微博那 SDK 做得很屎. [WeiboSDK registerApp: @"xxxxxxxx"]; [__NSDictionaryM weibosdk_WBSDKJ ...

  5. IOS新浪微博SDK AUTH2.0认证

    新版的新浪微博SDK AUTH2.0认证一般只支持网页认证,即弹出一个WebView登录.登录后只要不注销,即使退出app,下次进入程序还是保存登录状态.这里有个问题,注销后如果不手动清除cookie ...

  6. android 微博 4.1sdk,Android新浪微博SDK分享功能接入

    集成前准备 1. 申请APP_KEY 第三方需要接入微博SDK必须在微博开放平台上对应用进行注册,并获取APP_KEY,添加 应用的授权回调页面(Redirect URI) 2. 注册应用程序的包名和 ...

  7. 新浪微博SDK授权后无法返回应用解决方案

    http://blog.csdn.net/zhaoxy_thu/article/details/10037471 今天使用新浪微博iOS SDK的时候发现授权后无法返回应用,而是直接进入了回调页,折腾 ...

  8. android新浪微博sdk登录获取用户名_多账户的统一登录方案

    名称解释 这里的多账户区别于系统级别的,我们讲的多账户系统是指,在我们互联网应用当中,我们的应用会使用多个第三方账号进行登录,必须现在常用的APP(网易云音乐)登录方式包含:网易.微信.QQ 内容 通 ...

  9. 使用新浪微博sdk开发

    下载完成新浪android SDK之后,就是要学会看懂整个SDK的架构,其实主要就是说看懂他的程序. 新浪android SDK程序import进eclipse之后,可到的文件结构如下图: 首次导入看 ...

最新文章

  1. NeurIPS-21 | MGSSL: 基于官能团的分子属性预测图网络自监督预训练
  2. Java-Reflection反射-获取包括父类在内的所有字段
  3. python基础知识选择题-Python练习题(基础知识练习题(一))
  4. eclipse未能识别我的手机
  5. iOS面试用到的知识点和技术点--第二章
  6. 4种方法让SpringMVC接收多个对象(转:http://blog.csdn.net/lutinghuan/article/details/46820023)
  7. JavaBean的get、set方法生成器
  8. 全国高校计算机考试用的什么版本,全国高校计算机等级考试与全国计算机等级考试,有区别吗...
  9. JDK1.8 新特性(全)
  10. 解决Vue开发过程中与后台服务器跨域问题
  11. SQLi LABS Less 9 时间盲注
  12. cad怎么卸载干净_CAD无法卸载,又无法安装怎么办?
  13. 加上mvc:resources后controller访问404
  14. SQL基础---SQL DELETE 语句
  15. 文字处理技术:复杂的行宽计算
  16. 2022谷粒学院BUG记录
  17. 软考__常用英语单词
  18. 零基础自学Python好难?学起来很吃力,想放弃?看看别人是怎样学习的
  19. PADS VX2.8 基本规则的设置方法
  20. 博士申请 | 卡耐基梅隆大学陈贝迪老师课题组招收机器学习方向博士生

热门文章

  1. 2022年《国家职业教育智慧平台应用推广培训》课程-答案--(中职)已验证
  2. cad快看_苹果用户福音——CAD快速看图mac版来啦
  3. NTSTATUS类型返回值及含义
  4. 【django】settings.py配置文件内容详细介绍
  5. 考toeic心得。。。。
  6. 模块耦合名词解释_名词解释(软件工程)
  7. 三菱FX系列PLC电池电压低导致程序参数丢失,PROG.E报警灯闪烁的解决办法
  8. FMM和BMM分词题目
  9. 全球与中国二甲酮市场深度研究分析报告
  10. 百度竞价新人提升赚钱概率的方法