收藏 分销(赏)

基于IOS的新浪微博毕业设计.doc

上传人:精**** 文档编号:3359536 上传时间:2024-07-03 格式:DOC 页数:51 大小:1.32MB
下载 相关 举报
基于IOS的新浪微博毕业设计.doc_第1页
第1页 / 共51页
基于IOS的新浪微博毕业设计.doc_第2页
第2页 / 共51页
基于IOS的新浪微博毕业设计.doc_第3页
第3页 / 共51页
基于IOS的新浪微博毕业设计.doc_第4页
第4页 / 共51页
基于IOS的新浪微博毕业设计.doc_第5页
第5页 / 共51页
点击查看更多>>
资源描述

1、序号(学号): 长春光华学院毕 业 设 计(论 文)基于IOS平台的移动互联网终端大型社交类应用客户端开发 姓 名盛遵义教 学 院电器信息学院专 业电子信息工程班 级电信09401指导教师张淑艳(讲师)2023年05月24日 目 录摘要iAbstractii第1章 绪论11.1 开发背景及意义.1 1.1.1 开发背景1 1.1.2 开发意义31.2 开发工具及运营环境4 1.2.1 开发工具4 1.2.2 运营环境4第2章 项目所用技术介绍52.1 IOS简介52.2 IOS系统架构52.3 IOS系统优势7 2.3.1 IOS模块性7 2.3.2 灵活性7 2.3.3 可伸缩性7 2.3.

2、4 可操作性7第3章 系统分析83.1 功能需求83.2 系统使用例图9第4章 系统设计细节104.1 程序总体架构104.2 模块功能设计11第5章 具体设计与编码125.1 授权模块12 5.1.1 OAuth相关的三个URL12 5.1.2 OAuth相关的参数定义12 5.1.3 OAuth认证授权流程135.2 微博首页模块155.3 发布微博模块22 5.3.1 基本功能22 5.3.2 选择图片上传24 5.3.3 好友、添加热点话题和表情26第6章 系统测试286.1 授权模块测试用例296.2 发表微博测试用例296.3 浏览微博测试用例296.4 系统评价30第7章 总结3

3、1谢 辞32参考文献33基于IOS平台的移动互联网终端大型社交类应用客户端摘要 微博即MicroBlog,网上昵称围脖,是一种非正式的迷你型博客,是一个基于用户关系的信息分享、传播及获取平台。用户可以通过WEB(WORLD WIDE WEB)、WAP(Wireless Application Protoco)以及各种客户端组件个人社区,以140字左右的文字更新信息,并实现即时分享。它是一种互动及传播性极快的工具,具有实时性,传播速度甚至比大众媒体还快。 本文阐述了新浪微博客户端的各种相关知识,特别对iPhone客户端的开发和应用作了具体的介绍,同时将设计过程中所用到的重要方法及控件进行了具体说

4、明。本次毕业设计以IOS操作系统作为开发平台,Xcode作为开发环境,参照新浪提供的API,进行微博客户端软件的设计与实现。本软件实现了微博首页获取数据、我的资料、好友资料、我的关注、我的粉丝、收藏微博、评论微博、转发微博、添加照片、发表微博等功能,具有了一般微博所具有的功能,具有较强的实用性。关键词 IOS平台 iPhone微博 sina微博ABSTRACTAbstract Microblogging is a relationship based on user information-sharing, dissemination and access platform. Users ca

5、n use WEB(WORLD WIDE WEB), WAP(Wireless Application Protoco) individual components and a variety of client communities to inter about 140 words of text updates, and share this instantly . It is an interactive and fast spread tool, spread even faster than the traditional media.This article introduces

6、 the development of iPhone microblogging system, the system is divided into server-side and mobile client. Microblogging system uses the MVC design pattern, the three-layer architecture. The development tools is the Xcode.The developing environment is Xcode4.5 and the iPhone and use sina rest API. T

7、his sina ios microblog implement logining, register, release microblogging, visit the Friends HomePage, upload photos, update status and so on.Except the above functions,in mobile client, the table for discussion and real-time microblogging update reminders are added. Design and add photos and Imple

8、mentation of the table function is to resolve the problem of the microblogging and mobilize the enthusiasm of the users.Keywords IOS iphone MicroBlog sina MicroBlog第1章 绪论1.1 开发背景及意义1.1.1 开发背景2023年3月,博客技术先驱blogger创始人埃文威廉姆斯(Evan Williams)创建的新兴公司Twitter推出了微博服务。在最初阶段,这项服务只是用于向好友的手机发送文本信息。Twitter英文原意为小鸟的

9、叽叽喳喳声,用户能用如发手机短信的数百种工具更新信息。Twitter的出现把世人的眼光引入了微博的小小世界里。Twitter是一个社交网络及微博客服务。现在,用户可以经由SMS、即时通信、电邮、Twitter网站或Twitter客户端软件(如Twitterrific)输入最多140字的文字更新,Twitter被Alexa网页流量记录评估为最受欢迎的50个网络应用之一。在2023年5月,国际间计算总共有111个类似Twitter的网站。然而,最值得注意的仍是Twitter,它于2023年在得克萨斯州奥斯汀举办的南非西南会议赢得了博客类的网站奖。Twitter的重要竞争对手是Plurk和Jaiku

10、。后来微博客的新服务特色连续诞生,例如Plurk有时间轴可以观看整合了视讯和照片的分享,Identi、Pownce整合了微薄客加上档案分享和事件邀请。Twitter在国外的“大红大紫”,令国内有些人终于坐不住了。2023年从校内网起家的王兴,在2023年把公司卖给千橡互动后,于次年建立了饭否网。同样擅长技术活的SwiSen也瞄准了这个行业,不久清新、简约的随心微博也开始正式上线。而腾讯作为一个拥有4.1亿QQ用户的公司,看着用户对随时随地发布自己状态的强烈需求后,也忍不住尝试了一把,2023年8月13日腾讯滔滔上线。但事实证明,Twitter建立的“微型王国”不是在短时间内掘出黄金的浅矿,国内

11、的微博目在当时尚处在慢热的状态。据悉,随心微博、饭否网等目前仅拥有几十万用户,每月解决几千万条信息。国内微博不约而同地将现在的目光放在了产品调整以及服务完善上,在尚无法吸引到风险投资的眼光之前,他们最需要做的也许是如何靠自己的能力继续活下去。从2023年中国第一家带有微博色彩的饭否网开张,到2023年,微博这个全新的名词,以摧枯拉朽的姿态扫荡世界,打败奥巴马、甲流等等名词,成为全世界最流行的词汇。 随着而来的,是一场微博世界人气的争夺战,大批量的名人被各大网站招揽,各路名人也以微博为平台,在网络世界里聚集人气,同样,新的传播工具也造就了无数的草根英雄,从默默无闻到新的话语传播者,往往只在一夜之

12、间、寥寥数语。2023年7月中旬开始,国内大批老牌微博产品(饭否、腾讯滔滔等)停止运营,一些新产品开始进入人们的视野,像1月份开放的大围脖,6月份开放的Follow5,7月份开放的贫嘴,8月份开放的新浪微博。其中Follow5在2023年7月19日孙楠大连演唱会上的亮相, 是国内第一次将微博引入大型演艺活动,与twitter当年的发展颇有几分神似。2023年国内微博迎来了春天,微博像雨后春笋般崛起。四大门户网站均开设微博。根据相关公开数据,截至2023年1月份,微博类产品在全球已经拥有7500万注册用户。中国互联网络信息中心(CNNIC)发布的第28次中国互联网络发展状况记录报告报告显示,20

13、23年上半年,中国微博用户从6331万增至1.95亿,增长约2倍。该报告指出,中国互联网的普及率增至36.2%,较2023年增长1.9%。2023年上半年,我国微博用户数量从6331万增至1.95亿,半年增幅高达208.9%。微博在网民中的普及率从13.8%增至40.2%。从2023年终至今,手机微博在网民中的使用率比例从15.5%上升到34%。至今,新浪微博用户数超过1亿,得益于抢占了先机,并且在整体的战略执行上也比较彻底到位,所以获得了现在的地位。仅仅三年时间,新浪微博就为新浪生下了一个价值几十亿美金的金蛋。开放API(OpenAPI)是SaaS(Software as a Service

14、,软件即服务)模式下常见的一种应用,网站的服务商将自己的网站服务封装成一系列API(Application Programming Interface,应用编程接口)开放出去,供第三方开发者使用,这种行为就叫做开放网站的API,所开放的API就被称作OpenAPI(开放API)。网站提供开放平台的API后,可以吸引一些第三方的开发人员在该平台上开发商业应用,平台提供商可以获得更多的流量与市场份额,第三方开发者不需要庞大的硬件与技术投资就可以轻松快捷的创业,从而达成双赢的目的,开放API是大平台发展、共享的途径,让开发者开发一个有价值应用,付出的成本更少,成功的机会更多。今天,OpenAPI作为

15、互联网在线服务的发展基础,已经成为越来越多互联网公司发展服务的必然选择。OpenAPI的典型成功范例是Google Maps API和Twitter,Google Maps有Google这样的大公司支持,成功当然并不奇怪,但是Twitter的成功就很能说明问题。事实上,假如Twitter仅仅是一个网页形式的微博客的话,Jaiku就可以轻松的将其打败,Twitter主线不也许取得今天的成就。Twitter的活力就在于开放API,Twitter的成功和开放API密不可分。Twitter的开放API可以激发个人创作的积极性,引来了大量的第三方应用,这些第三方应用同时又扩大了Twitter原有的功能,

16、让Twitter更好用,从而极大丰富了Twitter平台自身的功用和乐趣,现在,Twitter超过一半的流量都是来自第三方API。随着Twitter的OpenAPI发布数量不断增长,运营过程中也开始暴露出一些问题。OpenAPI的巨大的访问量引起了Twitter种种性能问题,使得Twitter的稳定性大为减少,为了支持大量的外部API,Twitter宕机频繁,这估计是几乎所有Twitter用户都碰到过的现象。但即使如此,Twitter也没有放弃对OpenAPI的支持。由于开放API是历史的潮流,是必然的趋势,顺之者昌,逆之者亡,Twitter之所以击败众多各式各样的微博客网站,开放API功不可

17、没。国内的主流微博服务也纷纷开放了API,供广大第三方开发者接入微博提供了途径。本论文就是运用新浪微博的开放API来完毕的。1.1.2 开发意义在智能手机飞速发展的今天,手机成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用.因此应用建设在智能手机应用上的地位显而易见,它已成为人文信息交流,政府、企事业单位信息化建设中的重要组成部分,从而倍受人们的重视。这次我们所设计的课题正是智能手机与社会生活之间的紧密关系的体现,现今的社会,人们已经离不开了手机网络,它已经成为人与人之间交流的一种形式,它不仅仅是对通信网络、终端设备的整合再生,更是对人际关系、信息

18、传播方式的整合再生,这不仅对一个公司的发展具有重要意义,并且对促进现有社会资源充足发挥更大效能、推动社会进步都有着积极意义。微博,有点像聊天室或者说是像茶楼酒肆。是沟通人与人之间思想,交流知识,讨论问题和互换观点的网络交际平台。在这个平台上一方面是虚拟的人(性别,年龄,职业,喜好,职务等)共同谈论你所感爱好的任何话题,通过你们之间交流争辩让你对它有更进一步的了解和认知。微博的传播速度更快,关注的人更多,时效性更强。微博上有许多信息是在传统媒体上看不到的,而公众对公共话题天生有一种关注心态,在微博上公司和客户之间不再是单纯的买卖关系,微博用好了,就可以在公司用户中培养出超越买卖的情感关系,在市场

19、竞争中游刃有余。传统的公司口碑营销,偏重在结识的人之间的口碑,但现在,越来越多的年轻人相信网络社群上不结识的“亲朋好友”的评价。因此,赢得网友的口碑,对公司而言,几乎跟花钱做广告同样重要。微博客的出现丰富了公司网络营销的手段,帮助公司“赢得”陌生人的口碑。新浪微博重要用户群体集中在影视明星、公司高管、经济学者、传媒专家、营销策划人、评论员、主持人(主播)、创业者、网络红人,这些人基本上代表着颠覆与变革、创新与时尚。微博客作为一个新的交流互动平台,正在受到越来越多人的青睐。相比博客而言,微博客使用更加简朴,用户所付出的单位成本、精力投入都更少,写作门槛更低,用户扩展更为迅速,为也许实现的媒体信息

20、传播积累了庞大的通讯员队伍。同时,整合各类工具特别是手机短信的优势,微博客具有了实时传播的特性,在面对突发新闻事件时,微博客的报道速度往往能领先于传统媒体。随着微博的“客”流量不仅呈爆炸式增长,并且其影响力也与日俱增。微博客迅速成为中国公司及时传播信息,增长用户与公司粘性的营销利器。众多中小公司纷纷设立官方微博客,安排专人在新浪微博客开博,与粉丝紧密互动,积极推广公司品牌。微博预示着个体的力量不再孱弱,它在影响和改变这个世界上正发挥越来越大的作用。公司微博的最大价值在于构建与用户沟通的渠道和平台,高效传达及展现公司产品与服务,实现公司品牌的快速传播。越来越多的传统公司成功借助微博宣传公司品牌与

21、公司文化,通过建立口碑来获得长期利益。12 开发工具及运营环境1.2.1 开发工具(1) 开发该软件使用的开发工具为Xcode4.5版本1。(2) 开发该软件使用的开发语言为Objective-C等开发语言2-3。1.2.2 运营环境(1) 该软件运营手机的版本为iPhone4及其以上版本。(2) 开发该软件运营的苹果系统为IOS4.3.5及其以上版本。(3) 软件运营手机硬件参数 CPU:苹果A4解决器 集成PowerVR SGX535图形核心,800MHz; Ram:512MB; 屏幕:3.5英寸,960640像素; 支持频段:WCDMA 2100MHz 、CDMA EV-DO(电信3G专

22、用)。第2章 项目所用技术介绍2.1 IOS简介IOS是由苹果公司开发的手持设备操作系统。苹果公司最早于2023年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPod touch、iPad以及Apple TV等苹果产品上。IOS与苹果的Mac OS X操作系统同样,它也是以Darwin为基础的,因此同样属于类Unix的商业操作系统。原本这个系统名为iPhone OS,直到2023年6月7日WWDC大会上宣布改名为IOS。截止至2023年11月,根据Canalys的数据显示,IOS已经占据了全球智能手机系统市场份额的30%,在美国的市场占有率为43

23、%,据市场研究公司ABI Research最新发表的市场预测报告称,苹果的全球智能手机市场份额在2023年将达成最高点的22%。2.2 IOS系统架构Objective-C作为开发语言,是c语言的升级版4。iOS的系统结构分为以下四个层次:核心操作系统(the Core OS layer),核心服务层(the Core Services layer),媒体层(the Media layer),Cocoa 触摸框架层(the Cocoa Touch layer)。如图1所示。图1 IOS系统结构层次对初学者来说,Objective-C存在了很多令人费解的写法,事实上他们是非常优雅的。有C语言基础

24、的程序员在专业老师的指导下,用1个月的时间就可以完全掌握Objective-C这门编程语言了。程序员写的最多的就是函数以及调用自己写的或者别人写的函数。本文就从函数的角度来看下Objective-C的优雅之处。C#和Objective-C同属于C语言系列5。让我们先看下C#的函数定义和调用,做个对比。C#函数的定义:publicvoiddoIt(stringactorName,stringmovieName,inttimesSeen)Console.Write(0ismyfavoriteactorinthemovie1,Isawit2times.,actorName,movieName,tim

25、esSeen);函数的调用:Class1objMovie=newClass1();objMovie.doIt(莱昂纳多迪卡普里奥,盗梦空间,120);再让.NET程序员看下Objective-C的定义:-(void)doIt:(NSString*)actorNamemovieName:(NSString*)valuetimesSeen:(int)timesNSLog(%ismyfavoriteactorinthemovie%,Isawit%itimes.,actorName,value,times);假如你第一次看Objective-C,肯定会琢磨不透上面的代码,怀疑是不是写错了。对于上面这个

26、函数的定义:(1) -表达这个函数是实例函数(类似非静态函数),+表达这个函数是类函数(类似静态函数)(2)(void)表达这个函数没有返回值。(3) 函数名是doIt:,而不是doIt(4) 参数用空格隔开(5) 参数类型写在括号中(6) 参数分内部参数和外部参数,如电影名称,内部参数是:value,外部参数是:movieName(7) 函数的一个参数没有外部参数的名称,有内部参数名。如:actorName。调用:objMoviedoIt:遵义.思密达movieName:盗梦空间timesSeen:2023000从上面代码可以看出除了第一个参数,其余的参数都可以加上外部参数名称用于区别。从上

27、面可以看出Objective-C和C#区别很大,实在会令.NET程序员费解。Objective-C函数设计的优雅之处在于既有内部参数名又有外部参数名,可以不用再在内部定义变量来存放函数的参数。2.3 IOS系统优势2.3.1 IOS模块性IOS是Cisco路由软件的初始品牌名称。随着Cisco技术的发展,IOS不断扩展,成为Cisco Central ENgineering(中央工程部门)所称之为的“一系列紧密连接的网际互连软件产品”。尽管在其品牌名辨认中,IOS也许仍然等同于路由软件,但是它的连续发展发已使之过渡到支持局域网和ATM互换机,并为网络管理应用提供重要的代理功能。必须强调的是,I

28、OS是Cisco开发的技术:一项公司资产。它给公司提供独特的市场竞争优势。目前许多竞争者许可IOS在其集线器和中由模块内运营,IOS已尼广泛成为网际互连软件事实上的工业标准。2.3.2 灵活性基于Cisco产品的工程开发以用户可以获得适应变化的灵活性。IOS软件提供一个可扩展的平台,Cisco会随着需求和技术的发展集成新的功能。Cisco可以更快地将新产品投向市场,我们的客户可以享用这种优势。2.3.3 可伸缩性IOS遍布网际互连市场;广泛的Cisco使用伙伴及竞争者在他们的产品上支持IOS.IOS软件体系结构还允许其集成构造公司互联网络的所有部分。Cisco已经定义了4个:核心/中枢:网络中

29、枢和WAN服务,涉及大型骨干网络路由器和ATM互换机。工作组:从共享型局域网移植到局域网互换(VLANs)提供更优的网络分段和性能。)远程访问:远程局域网连接解决方案;边际路由器、调制解调器等。IBM网际互连:SNA和LAN并行集成,从SNA转换到IP.Cisco的IOS扩展了所有这些领域,提供了支持端到端网际互连的稳健性。2.3.4 可操作性IOS提供最广泛的基于标准的物理和逻辑协议接口超过业界任何其他供应商:从双绞线到光纤,从局域网到园区网到广域网,Novell NetWare,UNIX,SNA以及其他许多接口。即是说,一个围绕IOS建立的网络将支持非常广泛的应用。第3章 系统分析3.1

30、功能需求本次程序设计任务是IOS平台下的新浪微博客户端设计,程序将在真实手机运营调试。本次程序设计用户界面规定较为和谐,由于针对的用户为iPhone智能手机用户,因此程序的操作所有可以通过触控完毕操作。本新浪微博客户端规定设计合理.在设计完毕后,规定程序可以实现新浪微博的登录功能。同时,程序还必须可以实现对对新浪微博的首页信息获取,用户资料,好友资料,发表微博,用户的关注,用户的粉丝,转发微博,评论微博,收藏微博,我发表的微博等。最后,新浪微博获取信息要具有较高的执行效率。本次程序设计的操作系统规定为IOS4.3.5及以上版本。本次程序设计需要在Xcode4.5环境下开发。本客户端的数据都是通

31、过网络来自于新浪的服务器67,产生的数据也是上传到新浪的服务器,在客户端存储的只有OAuth产生的一些省份辨认信息,所以本客户端无需使用数据库。基于系统需求分析,该系统需要实现以下功能:(1) 用户登录授权:当用户第一次使用该软件时,会打开新浪微博的授权页面,假如是老用户,则授权登录,若是新用户,则注册新浪微博,然后跳转到微博首页。(2) 发布微博:发布微博是微博的基本功能,用户将自己想要向外界传达的信息进行发布,这是用户向外传播信息的最重要的途径与方法。(3) 修改用户个人信息:用户可以根据个人需要修改自己的信息,涉及用户名、email、心情、以及上传头像或者更改为其他头像。(4) 查看微博

32、更新:在微博的首页要显示用户关注的博友的最近微博更新,并可以查看微博的评论,以及查看博友的主页。(5) 转发微博:转发微博是微博的基本功能之一,用户将自己看到的感觉有用的信息进行转发,不需要用户所有编写,可以按照微博原文转发,也可以在原文的基础上更改信息后进行转发,这是用户发布微博的另一种较为方便的方法。(2) 评论微博:当用户对一篇微博有所感想时可以对这篇微博进行发表自己的评论,用户可以写下自己的想法进行评论,当评论成功时,别的用户再次浏览该篇微博时就可以在文章的下面看到用户的评论,这是微博进行互动的另一种方法。3.2系统使用例图在该软件系统中用户可以进行的操作有用户授权、查看微博首页、查看

33、微博详情、发布新的微博、对别人的或者自己的微博进行评论、转发别人的微博、查看别的用户详情护自己的具体信息,该系统使用例图,如图2所示。图2 系统使用例图第4章 系统设计细节4.1 程序总体架构在三层结构中(如图3所示),解决了客户端/服务器模式面临的许多问题。通过划分客户与服务器之间的功能,分布式计算提供了一种把应用中的用户界面从公司逻辑中分离出来的自然方法。在分布式环境下,公司逻辑提供了一种把应用中的用户界面从公司逻辑中分离出来的自然方法。在分布式环境下,公司逻辑集中地安装在应用服务器上,这样就减少了客户端的负载,同时对敏感信息的访问也可以得到很好的控制。采用分布式计算有着多方面的技术优势8

34、,涉及:(1) 封装性;(2) 性能;(3) 全性管理。在分布式计算模式中,由于所有的商业逻辑都驻留在服务器端,信息管理部就可以十分方便地监控服务器的运营情况,很容易地控制访问服务器以及与服务器应用打交道人员的数量。这可以大大简化管理员对系统的管理,减轻系统维护的工作量,并保证系统的可靠运营。图3 三层客户/服务器模型软件设计时,考虑到整个系统的延续性和可扩充性,我们将系统应用体系分为三部分:用户表现层、数据访问层、商业逻辑层。(1)用户表现层:解决用户界面的功能;(2)数据访问层:在通常情况下指数据库;(3)商业逻辑层:指在程序中做出职能决策的那一部分功能。微博客户端的结构图如图4 所示。图

35、4 微博客户端结构图4.2 模块功能设计本新浪微博客户端大体分为首页、微博详情、用户信息、发布微博、查看评论等模块,分别负责不同的功能6:授权模块:访问用户的信息与数据需要通过用户的授权,所以必须有用户授权的模块本软件才干正常使用。首页:是用户浏览微博的界面,会将用户所关注的人的微博按照时间先后顺序排列,其中会显示微博的作者、发布时间、内容、转发评论数量、发布方式等。首页是用户使用最多的界面,也是软件初次打开的默认界面。微博详情:当用户在首页浏览微博的时候,点击某一条微博就会进入到微博详情的界面,这个界面会更具体的展示用户所点击的那条微博,并且提供转发和评论的功能按钮。用户信息:用户信息是展示

36、用户的界面,何以展示用户自身的信息并修改,也可以查看任何用户感爱好的用户。发布微博:用来发布新微博的界面,转发和评论的时候也会用到这个模块。查看评论:用来浏览某一条微博的评论。第5章 具体设计与编码5.1 授权模块新浪微博采用OAuth授权方式来使第三方应用访问用户的数据,这样的话第三方应用就可以在不知道用户帐号和密码的情况下获取用户数据。OAuth协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAuth的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAuth是安全的。OAu

37、th协议为用户资源的授权提供了一个安全的、开放而又简易的标准。同时,任何第三方都可以使用OAuth认证服务,任何服务提供商都可以实现自身的OAuth认证服务,因而OAuth是开放的。业界提供了OAuth的多种实现如PHP、JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAuth是简易的。目前互联网很多服务如Open API,很多大公司如Google,Yahoo,Microsoft等都提供了OAuth认证服务,这些都足以说明OAuth标准逐渐成为开放资源授权的标准。5.1.1 OAuth相关的三个URLRequest Token URL: 获取未授权的Re

38、quest Token服务地址;User Authorization URL: 获取用户授权的Request Token服务地址;Access Token URL: 用授权的Request Token换取Access Token的服务地址。5.1.2 OAuth相关的参数定义OAUTH_consumer_key: 使用者的ID,OAuth服务的直接使用者是开发者开发出来的应用。所以该参数值的获取一般是要去OAuth服务提供商处注册一个应用,再获取该应用的OAUTH_consumer_key。OAUTH_consumer_secret:OAUTH_consumer_key相应的密钥。OAUTH_

39、token:OAUTH进行到最后一步得到的一个“令牌”,通过此“令牌”请求资源的网站就可以去拥有资源的网站抓取任意有权限可以被抓取的资源。 OAUTH_token_secret:OAUTH_token相应的私钥OAUTH_signature_method: 请求串的署名方法,应用每次向OAuth三个服务地址发送请求时,必须对请求进行署名。署名的方法有:HMAC-SHA1、RSA-SHA1与PLAINTEXT等三种。OAUTH_signature: 用上面的署名方法对请求的署名。OAUTH_timestamp: 发起请求的时间戳,其值是距1970 00:00:00 GMT的秒数,必须是大于0的整

40、数。本次请求的时间戳必须大于或者等于上次的时间戳。OAUTH_nonce: 随机生成的字符串,用于防止请求的重放,防止外界的非法袭击。OAUTH_version: OAuth的版本号。5.1.3 OAuth认证授权流程OAuth认证授权就三个环节,三句话可以概括:(1) 获取未授权的Request Token(2) 获取用户授权的Request Token(3) 用授权的Request Token换取Access Token当应用拿到Access Token后,就可以有权访问用户授权的资源了。上面的三个环节中,每个环节分别请求一个URL,并且收到相关信息,并且拿到上步的相关信息去请求接下来的U

41、RL直到拿到Access Token9。具体每步执行信息如下: 使用者(第三方应用)向OAUTH服务提供商请求未授权的Request Token。向Request Token URL发起请求,请求需要带上参数。 OAuth服务提供商批准使用者的请求,并向其颁发未经用户授权的oauth_token与相应的oauth_token_secret,并返回给使用者。 使用者向OAuth服务提供商请求用户授权的Request Token。向User Authorization URL发起请求,请求带上上步拿到的未授权的token与其密钥。 OAuth服务提供商将引导用户授权。该过程也许会提醒用户,你想将哪

42、些受保护的资源授权给该应用。此步也许会返回授权的Request Token也也许不返回。如Yahoo OAuth就不会返回任何信息给使用者。 Request Token 授权后,使用者将向Access Token URL发起请求,将上步授权的Request Token换取成Access Token。 OAuth服务提供商批准使用者的请求,并向其颁发Access Token与相应的密钥,并返回给使用者。 使用者以后就可以使用上步返回的Access Token访问用户授权的资源。从上面的环节可以看出,用户始终没有将其用户名与密码等信息提供应使用者(第三方软件),从而更安全。用OAuth实现背景一节

43、中的典型案例:当服务B(打印服务)要访问用户的服务A(图片服务)时,通过OAuth机制,服务B向服务A请求未经用户授权的Request Token后,服务A将引导用户在服务A的网站上登录,并询问用户是否将图片服务授权给服务B。用户批准后,服务B就可以访问用户在服务A上的图片服务。整个过程服务B没有触及到用户在服务A的帐号信息。本软件使用新浪微博的 ios SDK来辅助开发,这里面已经集成了一个开源的ios OAuth认证包:第三方应用一方面必须在新浪微博的开发者平台上注册成为开发者并且获得相应的app key 和app secret才可以引导用户注册6。新浪微博的开放平台网址:。request

44、Token = weibo.getOAuthRequestToken(xiha:/OAuthActivity);OAuthConstant.getInstance().setRequestToken(requestToken);url = requestToken.getAuthenticationURL();Intent intent = new Intent(XihaActivity.this,ActivityWebView.class);intent.putExtra(url, url);startActivity(intent);一方面设立RequestToken,”xiha:/OAu

45、thActivity”是一个ios系统定义的url类似于url,一个协议后跟着一个途径,当授权成功后就打开注册这个uri的页面。获取授权页面的url后,通过一个intent传到一个新的activity。在这个activity中,放置一个webview:web.loadUrl(url)。这样来打开授权页面,效果如图5所示,授权成功后就会打开注册xiha:/OAuthActivity这个uri的Activity。图5 微博授权页面5.2 微博首页模块一方面在manifest文献中为首页的Activity下面这行代码: 这样,当用户授权成功后就会打开这个Activity.在这个Activity中,重要是一个ListView,在ListView中的每一个条目中展示每一条微博。一方面将获得的Access_token和Access_token_secret 存储到sharedPreference中,这样的话用户只需在初次使用时需要授权,以后就可以直接获取数据了:prefs = PreferenceManager.getDefaultSharedPreferences(this);RequestToken requestToken=OAuthConstant.getInstance().getRequestToken();AccessTok

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服