新浪微博Android客户端开发第三讲
- 格式:ppt
- 大小:834.50 KB
- 文档页数:9
基于Android系统的新浪微博客户端的设计与实现作者:王明超来源:《电脑知识与技术》2012年第33期摘要:该系统基于Android移动开发平台,使用Java语言开发,使系统具有良好的平台移植性和可扩展性。
新浪微博Android SDK为第三方微博应用提供了文档易用的微博API调用服务,使第三方微博客户端无需了解复杂的验证和API调用过程,就可以实现分享文字或者多媒体信息到新浪微博。
本系统包括四个模块:应用程序登录模块,主界面显示模块,微博浏览模块,用户模块。
在登录模块,用户可以使用授权配置和用户注册并且登录系统。
关键词:新浪微博开放平台;授权配置;微博API调用服务中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2012)33-7933-03每一个时代都会催生新的理念,每一个理念又会引领新的潮流,每一个潮流又注定会冲破原有的桎梏,创新是时代的特征,更是IT业的标志。
摩尔定律的持续实现使整个IT业的发展和更新令人手忙脚乱,而作为终端设备中数量级最大的手机,近年更是近乎脱胎换骨,在颠覆传统手机概念的同时,不断挖掘着自身的市场价值,也成为众多厂商利益角逐的角斗场[1]。
IOS在乔布斯的精心策划下一路高歌猛进,Android则凭着开源的方式开山劈路,Symbian和Black berry的旧有模式被不断蚕食,Windows Phone则在滞后的泥潭中继续挣扎。
手机终端多样化应用的不断出现,使其在近乎实现PC端功能的同时,也影响着PC的发展。
互联网领域,以Facebook为代表的SNS的突起更是激起新一轮的网络风波,而在国内,冲破众堵的新浪在其准确的定位和成功的推广策略下推出的新浪微博更是占据了先导地位,并逐渐进入大众生活,成为许多人的生活必需品。
近年来,新浪微博的邀请重点由明星、名人转向媒体工作者甚至政府工作者,为时事的发布和民政工作提供了更为多样、便捷的方式[2]。
于是,新浪微博手机客户端便应运而生,而作为市场占有率第一的Android平台下的新浪微博客户端更是拥有广泛的需求。
新浪微博Android界面技术方案设计新浪微博Android界面设计方案,需要进行以下的分析和总结。
1、明确建立网站的目标和用户需求;2、确定总体设计方案主题;3、功能、框架确定及可用性分析(需要与软件开发人员共同探讨)4、原型设计,即初步板式确定及色彩使用分析;5、界面设计,即在相关软件上实现界面;6、修改并交予重构。
一、产品定位与市场分析阶段1、目的:了解新浪微博移动客户端(基于Android系统)针对的市场、客户群体、运行方式、盈利方式等,以确定相应的产品开发方向。
2、产品定位:新浪微博是一款为大众提供娱乐休闲生活服务的信息分享和交流平台。
娱乐——涵盖最全面的娱乐明星与资讯;生活——反映网民现实生活的点点滴滴;快乐——分享发现人们身边的趣闻轶事3、市场分析:截至2010年10月底,新浪微博用户数已达5000万,目前是中国用户数最多的微博产品,公众名人用户众多是新浪微博的一大特色,目前基本已经覆盖大部分知名文体明星、企业高管、媒体人士。
根据2010年官方公布数据显示,新浪微博每天发博数超过2500万条,其中有38%来自于移动终端。
每天发布微博数量超过两千五百万条,微博总数累计超过20亿条。
是目前国内最有影响力、最受瞩目的微博运营商。
移动客户端发展前景巨大移动客户端的优点在于其实时性,实地性,故可以将新浪微博移动客户端定位为新闻发布平台,信息交互平台,娱乐休闲平台,生活展示平台,快乐分析平台。
故在设计界面时,Android是目前主流的智能手机操作系统,那么智能手机在各个方面的应用当然也要体现出其系统优势出来,即给用户更好的交互体验及功能享受。
界面的展现会主要以微博为主,实现查看、发表、评论、分享等功能,结合Android良好的触控体验,二、用户需求分析1、目的:收集相关资料分析目标用户的使用特征、情感、习惯、心理、需求等,提出用户研究报告和可用性设计建议。
这部分工作有团队配合完成。
时间与项目需求允许的情况下,更可以制定实景用户分析。
Android授权登录新浪微博获取用户个人信息一、准备工作我们都知道,无论是分享到新浪微博,还是获取新浪微博的用户信息,都离不开一样东西,那就是新浪微博的APPID,APPID通过绑定我们应用程序的包名和签名进行识别,可以说它是我们跟新浪微博官方所提供接口进行交互的一个重要令牌,这一点跟QQ、微信接口等访问原理基本是一样的。
那么问题来了,APPID到底怎么得到?答案就是你要到新浪微博开放平台/注册一个帐号,填写并创建你的应用。
如下图所示:点击创建应用后会出现如下图所示页面,在这个页面中你必须要填写你的Android包名和Android签名,包名就是你应用程序AndroidManifest.xml文件中的package中的字符串,比如你新建了一个名称为“test”的项目,那么你的包名应该是com.example.test了。
至于Android 签名,你可以在该开放平台下载签名工具apk装到手机,然后打开该apk填写程序包名获取签名,也可以直接在开发工具eclispe中点击Window->Preferences->Android->Build查看,如下图所示,至于其它必要的填写信息,你自己去完善就可以了将所有信息填写完善后我们点击提交审核,注意,只有审核通过的应用才能调用他们提供的API。
二、工程准备新建一个工程,包名要跟你上面填写的包名一致。
新建完成后下载新浪微博SDK,下载完成后解压,将libs目录下的文件全部拷贝到你的工程libs目录下,将weiboSDKCore_3.1.2.jar 包也拷贝到libs目录下,找到AccessTokenKeeper.Java、UsersAPI.java、AbsOpenAPI.java文件并拷贝到你的包中,我把我的工程目录图贴出来,后面我会把整个示例源码放上来。
注意上面common中的SinaUserInfo.java是我自己建的,只是用来方便存和取用户信息而已。
新浪微博客户端的设计与实现学院计算机学院专业计算机科学与技术(嵌入式系统方向)班级04010105学号2010040101170 姓名高志伟指导教师曹一鹏负责教师沈阳航空航天大学2014年6月摘要作为市场占有率第一的新浪微博客户端拥有着广泛的需求。
目前一些新浪微博客户端相对比较完善,功能也比较齐全,但基于市场利益考虑,有着不同程度涉及广告的行为,而且界面设计的相对传统,引起很多用户不满。
因此,本课题就致力于开发出一款基于Android平台的满足用户使用需求的新浪微博客户端。
为了实现新浪微博客户端,需要申请开发者账号,并且下载新浪微博Android SDK。
新浪微博Android SDK为第三方微博应用提供了微博API调用服务,使第三方微博客户端无需了解复杂的验证和API调用过程,就可以实现分享文字或者多媒体信息到新浪微博。
本文阐述了新浪微博客户端的各种相关知识,同时将设计过程中所用到的主要方法及控件进行了详细说明。
本应用实现了发表微博、评论微博、转发微博、我的资料、我的关注、我的粉丝、收藏评论等功能,具有较强的实用性;将服务接入微博平台,有助于推广产品,增加应用的流量、拓展新用户,甚至获得收益。
关键词:Android平台;新浪微博Android SDK;微博API调用服务Sina Micro blogging Client Design and ImplementationAbstractAs the market share of the first Sina micro blogging client has a wide range of needs。
At present,some Sina micro blogging client base is relatively sound,function relatively complete, but based on market interest, with varying degrees of behavior involved in advertising,and the interface is relatively conventional design, attracted a lot of user dissatisfaction。
新浪微博---开放平台的使用01现在有很多的开放平台,可以供第三方来基于这些开放平台开发应用程序,最近在做新浪微博的一个小例子,刚刚入门,高手勿拍砖!1、这个是新浪的开放平台,里面有SDK,有开发文档等等2、下载SDK,我暂时先下载了一个JAVA的SDK来实验一下,具体地址:/wiki/index.php/SDK#Java_SDK3、将其解压到eclipse的workspace里面,然后导入到eclipse4、开发第三方应用程序,需要创建一下应用,之后你会得到一个KeyApp Key:1211******App Secret:d6b*****************************5、一开始是找到的是weibo4j.Weibo.java、weibo4j.examples.statues.UpdateStatus.java文件,于是在UpdateStatus.java里修改了一下Key和Secret的值,当然如果用默认的,好像是不出错的,但是我用了一下自己的,却出错了,什么错误呢?Java代码1weibo4j.WeiboException: 403:The request is understood, but it has been refused. An accompanying error message will explain why.2{"request":"/statuses/update.json","error_code":"403","error":"40320:Error: basic auth forbidden !"}34at weibo4j.http.HttpClient.httpRequest(HttpClient.java:669)5at weibo4j.http.HttpClient.httpRequest(HttpClient.java:611)6at weibo4j.http.HttpClient.post(HttpClient.java:435)7at weibo4j.Weibo.updateStatus(Weibo.java:1276)8at weibo4j.examples.statuses.UpdateStatus.main(UpdateStatus.java:28)网上说的是:将自己添加为测试用户①登录开放平台,我的应用--编辑应用属性---测试用户UID②这个UID就是你注册新浪微博的时候,分配给你的一串类似于QQ号的东西,可以到“我的微博”,上面会有你的名字和微博的ID,这串数字就是UID③将UID放到输入框里,就会将你自己添加为测试用户看到basic auth认证机制不能用了,于是我将Weibo weibo = getWeibo(false,args);里面的false改为true,让它使用OAuth认证,但是可能是由于我太菜了,运行后还是有问题,再次如果有那个朋友知道的话帮个忙哈Java代码9args = new String[]{"xxxxx@","*******"};10Weibo weibo = getWeibo(false,args);1112Status status = weibo.updateStatus("心语互动测试成功!");13System.out.println(status.getId() + " : "+ status.getText()+" "+status.getCreatedAt());上面是UpdateStatus里面的代码,下面是运行后的错误Java代码14weibo4j.WeiboException: 403:The request is understood, but it has been refused. An accompanying errormessage will explain why.15{"request":"/statuses/update.json","error_code":"403","error":"40320:Error: basic auth forbidden !"}1617at weibo4j.http.HttpClient.httpRequest(HttpClient.java:669)18at weibo4j.http.HttpClient.httpRequest(HttpClient.java:611)19at weibo4j.http.HttpClient.post(HttpClient.java:435)20at weibo4j.Weibo.updateStatus(Weibo.java:1276)21at weibo4j.examples.statuses.UpdateStatus.main(UpdateStatus.java:28)即使查了错误代码,还是不知道到底是哪里错了6、后来我看了一下readme.txt说明文档,想用不需要认证的OAuth来试试,于是按照它的说法:OAuth桌面应用访问步骤:1> 在weibo4j.examples.OAuthUpdate 访问认证的URL,得到pin2> 在weibo4j.examples.OAuthUpdate 输入pin,然后得到AccessToken3> 即可访问用户的微博,参考:weibo4j.examples.OAuthUpdateTwoweibo4j.examples.OAuthUpdateTwo尝试了一下,运行后控制台下会有个链接,点击这个链接,会得到一个pin:350576在控制台输入pin后,得到了Access token: f520d1efb5532e6daf**************Access token secret: ddb5f6990b66579fe4**************7、然后将Access token和Access token secret放入weibo4j.examples.OAuthUpdateTwo中Java代码22/*23* 此处需要填写AccessToken的key和Secret,可以从OAuthUpdate的执行结果中拷贝过来24*/25// weibo.setToken("AccessToken", "AccessTokenSecret");26weibo.setToken("f520d1efb5532e6daf**************", "ddb5f6990b66579fe4**************"); 8、下面这条语句是更新状态的语句,你可以输入你想说的Java代码27Status status = weibo.updateStatus("你好吗?");9、然后还要将你的用户名和密码加入到里面,注意红色部分Java代码28<STRONG><SPAN style="COLOR: #ff0000">args = new String[]{"*******@","*******"};</SPAN></STRONG>29if (args.length < 2) {30System.out.println(31"Usage: java weibo4j.examples.OAuthUpdateTwo token tokenSecret");32System.exit( -1);33}10、运行JAVA程序,然后更新博客,你会看到状态更新了使用Oauth向新浪微博发消息最近看了一下新浪围脖的Oauth消息发送的方式,整理一下。
微博Android平台SDK文档北京新潮讯捷信息技术有限公司编号:WEIBO_ANDROID_SDK版本:WEIBO_ANDROID_SDK V2.0.0修订记录目录微博Android平台SDK文档 (1)概述 (3)主要类说明: (3)主要接口说明 (3)1.获取Weibo对象 (3)2.获取Oauth2AccessToken对象 (5)3.分享到微博 (5)4.SSO支持 (6)实例分析 (6)1.通过Oauth2.0授权获得AccessToken (7)2.发送微博 (8)SSO介绍 (10)1.SSO功能使用方式 (10)2.SSO授权功能介绍 (10)3.SSO授权优势 (10)4.SSO授权流程示例 (10)SDK使用说明 (12)1.使用weibo.sdk.android(不包含sso功能) (12)2.使用weibo.sdk.android.sso (15)3.SDK使用及修改必须遵守微博开发者协议,以及开源软件协议。
(18)概述微博Android平台SDK为第三方微博应用提供了文档易用的微博API调用服务,使第三方客户端无需了解复杂的验证,API调用过程。
并可以实现分享到微博的功能,可以分享文字,或者多媒体信息到内置的分享页面,并发送到微博。
主要类说明:1.Weibo: 微博API 接口类,对外提供weiboapi的调用,包括登录,API调用,微博分享等功能。
2.Oauth2AccessToken:封装了“access_token”,“expires_in”,"refresh_token",并提供了他们的管理功能3.Utility:工具类,提供了url 的encode,decode方法。
4.AsyncWeiboRunner:微博api异步执行类,封装了回调接口,通过创建线程来调用Weibo中的接口方法。
5.HttpManager: 负责与服务器进行通讯的类,封装了GET、POST请求方式,并对外提供图片上传等功能6.WeiboAPI: 该类及其子类封装了新浪微博对外提供的api接口方法。
新浪微博抓包分析摘要:数据包捕获及分析主要实现了对网络上的数据包进行捕获及分析。
在包分析功能模块,根据报文协议的格式,把抓到的包进行解析,从而得到网络层和传输层协议的报头内容等信息。
本次研究通过对新浪微博的网络数据包进行捕捉,分析数据包的结构,从而掌握数据包捕获和数据包分析的相关知识。
关键词:包分析;协议;数据包1序言本实验研究通过技术手段捕获数据包并加以分析。
Ether Peek5.1是当前较为流行的图形用户接口的抓包软件,是一个可以用来监视所有在网络上被传送的包,并分析其内容的程序。
它通常被用来检查网络工作情况,或是用来发现网络程序的bugs。
通过Ether Peek对TCP、SMTP和FTP等常用协议进行分析,非常有助于网络故障修复、分析以及软件和协议开发。
计算机网络安全、信息安全已经成为一个国际性的问题,每年全球因计算机网络的安全问题而造成的经济损失高达数百亿美元,且这个数字正在不断增加。
网络数据包的捕获与分析对研究计算机网络安全问题有着重要意义。
网络安全问题既包括网络系统的安全,又包括网络信息的安全和机密性。
2抓包工具介绍及抓包原理2.1工具介绍目前常用的抓包工具有Sniffer,wireshark,WinNetCap,WinSock Expert,EtherPeek等。
本次实验研究是在windows XP系统环境下安装EtherPeek进行抓包。
EtherPeek是个用来截取网络数据包的工具,主要用监听统计和捕获数据包两种方式进行网络分析。
它只能截取同一HUB的包,也就是说假如你的便携装了EtherPeek,那么你的便携必须与你要监控的目的地址和源地址中的一个接在同一HUB上。
有了这个工具,如果5250仿真或telnet仿真出了问题,就可以用它来截取数据包,保存下来,再进行分析。
2.2数据包捕获原理在通常情况下,网络通信的套接字程序只能响应与自己硬件地址相匹配的或是以广播形式发出的数据帧,对于其他形式的数据帧比如已到达网络接口但却不是发给此地址的数据帧,网络接口在验证投递地址并非自身地址之后将不引起响应,也就是说应用程序无法收取与自己无关的的数据包。
Android授权登录新浪微博获取用户个人信息一、准备工作我们都知道,无论是分享到新浪微博,还是获取新浪微博的用户信息,都离不开一样东西,那就是新浪微博的APPID,APPID通过绑定我们应用程序的包名和签名进行识别,可以说它是我们跟新浪微博官方所提供接口进行交互的一个重要令牌,这一点跟QQ、微信接口等访问原理基本是一样的。
那么问题来了,APPID到底怎么得到?答案就是你要到新浪微博开放平台/注册一个帐号,填写并创建你的应用。
如下图所示:点击创建应用后会出现如下图所示页面,在这个页面中你必须要填写你的Android包名和Android签名,包名就是你应用程序AndroidManifest.xml文件中的package中的字符串,比如你新建了一个名称为“test”的项目,那么你的包名应该是com.example.test了。
至于Android 签名,你可以在该开放平台下载签名工具apk装到手机,然后打开该apk填写程序包名获取签名,也可以直接在开发工具eclispe中点击Window->Preferences->Android->Build查看,如下图所示,至于其它必要的填写信息,你自己去完善就可以了将所有信息填写完善后我们点击提交审核,注意,只有审核通过的应用才能调用他们提供的API。
二、工程准备新建一个工程,包名要跟你上面填写的包名一致。
新建完成后下载新浪微博SDK,下载完成后解压,将libs目录下的文件全部拷贝到你的工程libs目录下,将weiboSDKCore_3.1.2.jar 包也拷贝到libs目录下,找到AccessTokenKeeper.Java、UsersAPI.java、AbsOpenAPI.java文件并拷贝到你的包中,我把我的工程目录图贴出来,后面我会把整个示例源码放上来。
注意上面common中的SinaUserInfo.java是我自己建的,只是用来方便存和取用户信息而已。
新浪微博新手手册第一章微博入门--------------------------------------------------------------------------------------------------21.1什么是微博--------------------------------------------------------------------------------------------------21.2如何注册微博-----------------------------------------------------------------------------------------------21.3如何登录微博-----------------------------------------------------------------------------------------------31.4新手快速使用微博攻略-----------------------------------------------------------------------------------3第二章微博强大功能--------------------------------------------------------------------------------------------42.1发微博的几种方式----------------------------------------------------------------------------------------42.2话题----------------------------------------------------------------------------------------------------------62.3发图片-------------------------------------------------------------------------------------------------------72.4发视频-------------------------------------------------------------------------------------------------------72.5发音乐--------------------------------------------------------------------------------------------------------82.6投票----------------------------------------------------------------------------------------------------------92.7私信----------------------------------------------------------------------------------------------------------102.8评论、转发、收藏功能----------------------------------------------------------------------------------102.9关注和粉丝-------------------------------------------------------------------------------------------------10-------------------------------------------------------------------------------------------------------112.11个人标签---------------------------------------------------------------------------------------------------11第三章手机玩转微博--------------------------------------------------------------------------------------------113.1手机短信、彩信更新微博-------------------------------------------------------------------------------113.2手机WAP更新微博--------------------------------------------------------------------------------------123.3手机客户端更新微博-------------------------------------------------------------------------------------12第四章帐号设置--------------------------------------------------------------------------------------------------1 54.1昵称----------------------------------------------------------------------------------------------------------154.2个性域名----------------------------------------------------------------------------------------------------154.3修改密码----------------------------------------------------------------------------------------------------154.4密码及密保资料查询-------------------------------------------------------------------------------------164.5微博登录名忘记-------------------------------------------------------------------------------------------16第五章认证&合作-----------------------------------------------------------------------------------------------16 5.1为什么要进行身份认证?------------------------------------------------------------------------------165.2如何进行V认证与合作---------------------------------------------------------------------------------165.3通过身份认证后是否有特权---------------------------------------------------------------------------17第六章微博新功能、新活动上线----------------------------------------------------------------------------176.1微博群------------------------------------------------------------------------------------------------------17---------------------------------------------------------------------------------------------------186.3勋章-----------------------------------------------------------------------------------------------------------196.4举报不良信息-----------------------------------------------------------------------------------------------20第一章微博入门1.1什么是微博可以把微博理解为“微型博客”或者“一句话博客”。
Android集成新浪微博第三⽅登录的⽅法本⽂实例讲述了Android集成新浪微博第三⽅登录的⽅法。
分享给⼤家供⼤家参考。
具体实现⽅法如下:1.下载微博的sdk ,导⼊微博的jar包两个 android-support-v4.jar和weibosdkcore.jar两个包2.把新浪微博中的demo_src中SDK中的com,导⼊到项⽬中3.⽤demo中的constants,主要是参数设置,将⾥⾯的参数改成⾃⼰的参数。
4.编写代码,主要步骤如下:复制代码代码如下:// 初始化微博对象mWeiboAuth = new WeiboAuth(this, Constants.APP_KEY, Constants.REDIRECT_URL, Constants.SCOPE);// sinaAuthorWebView.loadUrl("https:///oauth2/authorize?scope=email&redirect_uri=&state=flashmemoAndroid&forcelogin=true&display=mobile&client_id=2529326755"); //获取codemWeiboAuth.authorize(new AuthListener(), WeiboAuth.OBTAIN_AUTH_CODE);// 第⼆步:通过 Code 获取 TokenfetchTokenAsync(mCode, WEIBO_DEMO_APP_SECRET);5.主要的核⼼代码如下:复制代码代码如下:/*** 微博认证授权回调类。
*/class AuthListener implements WeiboAuthListener {@Overridepublic void onComplete(Bundle values) {if (null == values) {// 获取code失败return;}String code = values.getString("code");if (TextUtils.isEmpty(code)) {// 获取code失败return;}// 获取code成功mCode = code;// 获取code成功,第⼆步:通过 Code 获取 TokenfetchTokenAsync(mCode, WEIBO_DEMO_APP_SECRET);}@Overridepublic void onCancel() {Log.e("LoginActivity", "sinaAuth cancel");//如果取消授权,那么可以调到登录页⾯等}@Overridepublic void onWeiboException(WeiboException e) {Log.e("LoginActivity", "sinaAuth exception :" + e.getMessage());}}/*** 该 Handler 配合 {@link RequestListener} 对应的回调来更新 UI。