版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 畢業(yè)設(shè)計(jì)(論文)</b></p><p> 題 目: 騰訊微博客戶端的設(shè)計(jì)與實(shí)現(xiàn) </p><p> 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù)(軟件工程)</p><p> 院(系): 信息工程學(xué)院 </p><p>
2、 完成時(shí)間: </p><p> 畢業(yè)設(shè)計(jì)(論文)任務(wù)書</p><p> 附表一 題目來源:探索學(xué)習(xí)</p><p> 畢業(yè)設(shè)計(jì)(論文)開題報(bào)告</p><p><b> 附表二 <
3、;/b></p><p> 畢業(yè)設(shè)計(jì)工作中期檢查Ⅰ</p><p> 附表三 2012 年4 月2日</p><p> 畢業(yè)設(shè)計(jì)工作中期檢查Ⅱ</p><p> 附表四
4、 2012 年5 月3日</p><p> 騰訊微博客戶端的設(shè)計(jì)與實(shí)現(xiàn)</p><p> 摘要:微博,即微博客(MicroBlog)的簡稱,是一個(gè)基于用戶關(guān)系的信息分享、傳播以及獲取平臺,用戶可以通過WEB、WAP以及各種客戶端組建個(gè)人社區(qū),以140字左右的文字更新信息,并實(shí)現(xiàn)即時(shí)分享。微博集成了手機(jī)短信、博客與社交網(wǎng)站的優(yōu)點(diǎn),將消費(fèi)者從原來單純
5、的信息接收者變成了接收和發(fā)布信息的完全參與者,從而讓社會走進(jìn)了全民記者時(shí)代。</p><p> 此客戶端是在VS2010平臺下利用微軟的MFC(微軟基礎(chǔ)類庫)進(jìn)行開發(fā)的,通過調(diào)用騰訊微博開放平臺提供的API接口,獲得騰訊微博用戶的相關(guān)信息。通過此客戶端,用戶可以獲得自己的信息,發(fā)表新微博,查看自己收聽用戶的微博,并進(jìn)行評論與收藏。在界面方面,使用的是MFC提供的控件。通過對控件的功能的完善,可以使用戶更加方便的
6、使用客戶單完成微博的一些基本操作。</p><p> 關(guān)鍵詞:微博,騰訊,MFC,API接口</p><p> Design and Implementation of Tencent Microblog Client</p><p> Abstact: Micro blog (MicroBlog), referred to as microblogging,
7、 is a relationship based on user information sharing, dissemination and access to the platform, users can set up individual communities, through the WEB as well as a variety of clients to update the information in about
8、140 words of text, and to achieveinstant sharing. The microblogging integrates the advantages of mobile phone text messages, blog and social networking sites, consumers from the original simple information receiver to &l
9、t;/p><p> This client is developed by using Microsoft's MFC (Microsoft Foundation Class Library) in VS2010 platform. By calling Tencent microblogging opening platform API interface get Tencent microbloggin
10、g user's information. Through this client, users can access their own information, the new microblogging, check the microblogging of user's that they are listening and reviews and collection. At the interface, us
11、ing MFC controls. Perfect control function allows users to more easily use the customer a sin</p><p><b> 目錄</b></p><p><b> 一、緒論1</b></p><p><b> 1.1
12、引言1</b></p><p> 1.2微博的定義與特點(diǎn)1</p><p> 1.2.1微博的定義1</p><p> 1.2.2微博的特點(diǎn)2</p><p> 1.3國內(nèi)外研究發(fā)展綜述2</p><p> 1.3.1國外發(fā)展綜述2</p><p> 1.3.
13、2國內(nèi)發(fā)展綜述3</p><p> 二、系統(tǒng)開發(fā)環(huán)境簡介5</p><p> 2.1系統(tǒng)開發(fā)軟件環(huán)境5</p><p> 2.1.1 Visualstudio.NET2010簡介5</p><p> 2.1.2 騰訊微博開放平臺5</p><p> 2.2系統(tǒng)開發(fā)硬件環(huán)境6</p>
14、<p> 三、軟件需求分析與總體設(shè)計(jì)7</p><p> 3.1系統(tǒng)需求分析7</p><p> 3.1.1 功能需求7</p><p> 3.1.2 穩(wěn)定性需求7</p><p> 3.1.3 其它需求7</p><p> 3.2 微博客戶端設(shè)計(jì)概要8</p><
15、p> 3.3 微博客戶端認(rèn)證機(jī)制8</p><p> 3.3.1 騰訊微博 API OAuth認(rèn)證介紹8</p><p> 3.3.2 OAuth認(rèn)證機(jī)制介紹8</p><p> 3.3.3 OAUTH認(rèn)證機(jī)制的運(yùn)行過程9</p><p> 3.4 微博客戶端信息抓取流程10</p><p>
16、 3.4.1 CWeiboParam參數(shù)類及微博相關(guān)參數(shù)簡介11</p><p> 3.4.2 信息傳遞函數(shù)SyncRequest()簡介11</p><p> 3.5 對返回值的解析12</p><p> 3.5.1 Json格式簡介12</p><p> 3.5.2 騰訊微博API對Json格式的解析14</p&
17、gt;<p> 3.5.3 XML格式簡介15</p><p> 3.5.4 騰訊微博API對XML格式的解析16</p><p> 3.6 字符串格式的轉(zhuǎn)換16</p><p> 3.6.1 Unicode字符集與多字節(jié)字符集的區(qū)別16</p><p> 3.6.2 char*、string和CString的
18、轉(zhuǎn)換17</p><p> 四、軟件詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)18</p><p> 4.1 相關(guān)變量的定義18</p><p> 4.2 相關(guān)圖片的獲取和顯示19</p><p> 4.3 用戶登錄的設(shè)計(jì)與實(shí)現(xiàn)20</p><p> 4.4 用戶信息模塊的設(shè)計(jì)與實(shí)現(xiàn)21</p><p&g
19、t; 4.5 微博相關(guān)操作模塊的設(shè)計(jì)與實(shí)現(xiàn)23</p><p> 4.6 微博發(fā)布和評論模塊的設(shè)計(jì)與實(shí)現(xiàn)25</p><p><b> 五、開發(fā)總結(jié)26</b></p><p><b> 致謝27</b></p><p><b> 參考文獻(xiàn)28</b><
20、;/p><p><b> 一、緒論</b></p><p><b> 1.1引言</b></p><p> 微博,即微博客(MicroBlog)的簡稱,是一個(gè)基于用戶關(guān)系的信息分享、傳播以及獲取平臺,用戶可以通過WEB、WAP以及各種客戶端組建個(gè)人社區(qū),以140字左右的文字更新信息,并實(shí)現(xiàn)即時(shí)分享。近3年來,互聯(lián)網(wǎng)上4種
21、主要的社交媒體(SocialMedia)———微博、社交網(wǎng)站、視頻分享網(wǎng)站和開放式百科全書從根本上改變了人類的生活。人類正以前所未有的速度和廣度傳遞信息,以計(jì)算機(jī)為媒介的溝通成為人們互動溝通的重要方式。在這4種媒體中,微博后來居上。國外最早提供微博服務(wù)的網(wǎng)站是美國的Twitter,從2006年10月開通至2011年1月在全球已擁有近2億注冊用戶,年增長率約1500%,每日訪問量約30億國內(nèi)的新浪微博和騰訊微博均在開通不到一年半的時(shí)間內(nèi)突
22、破1億用戶。微博集成了手機(jī)短信、博客與社交網(wǎng)站的優(yōu)點(diǎn),將消費(fèi)者從原來單純的信息接收者變成了接收和發(fā)布信息的完全參與者,從而讓社會走進(jìn)了全民記者時(shí)代。2010年我國最大的50起網(wǎng)絡(luò)輿情案例中約1/4是微博發(fā)起的,微博已成為企業(yè)和網(wǎng)民互動溝通的新平臺。</p><p> 1.2微博的定義與特點(diǎn)</p><p> 1.2.1微博的定義</p><p> 國內(nèi)知名新媒
23、體領(lǐng)域研究學(xué)者陳永東在國內(nèi)率先給出了微博的定義:微博是一種通過關(guān)注機(jī)制分享簡短實(shí)時(shí)信息的廣播式的社交網(wǎng)絡(luò)平臺。其中有五方面的理解:</p><p> (1) 關(guān)注機(jī)制:可單向可雙向</p><p> (2) 簡短容:通常為140字</p><p> (3) 實(shí)時(shí)信息:最新實(shí)時(shí)信息</p><p> (4) 廣播式:公開的信息,誰都可以
24、瀏覽</p><p> (5) 社交網(wǎng)絡(luò)平臺:把微博歸為社交網(wǎng)絡(luò)</p><p> 1.2.2微博的特點(diǎn)</p><p> 微博客草根性更強(qiáng),且廣泛分布在桌面、瀏覽器、移動終端等多個(gè)平臺上,有多種商業(yè)模式并存,或形成多個(gè)垂直細(xì)分領(lǐng)域的可能,但無論哪種商業(yè)模式,都離不開用戶體驗(yàn)的特性和基本功能。</p><p> (1) 信息獲取具有很
25、強(qiáng)的自主性、選擇性,用戶可以根據(jù)自己的興趣偏好,依據(jù)對方發(fā)布內(nèi)容的類別與質(zhì)量,來選擇是否“關(guān)注”某用戶,并可以對所有“關(guān)注”的用戶群進(jìn)行分類;</p><p> (2) 微博宣傳的影響力具有很大彈性,與內(nèi)容質(zhì)量高度相關(guān)。其影響力基于用戶現(xiàn)有的被“關(guān)注”的數(shù)量。用戶發(fā)布信息的吸引力、新聞性越強(qiáng),對該用戶感興趣、關(guān)注該用戶的人數(shù)也越多,影響力越大。此外,微博平臺本身的認(rèn)證及推薦亦助于增加被“關(guān)注”的數(shù)量;</
26、p><p> (3) 內(nèi)容短小精悍。微博的內(nèi)容限定為140字左右,內(nèi)容簡短,不需長篇大論,門檻較低;</p><p> (4) 信息共享便捷迅速??梢酝ㄟ^各種連接網(wǎng)絡(luò)的平臺,在任何時(shí)間、任何地點(diǎn)即時(shí)發(fā)布信息,其信息發(fā)布速度超過傳統(tǒng)紙媒及網(wǎng)絡(luò)媒體。</p><p> 1.3國內(nèi)外研究發(fā)展綜述</p><p> 1.3.1國外發(fā)展綜述<
27、;/p><p> 2006年3月,博客技術(shù)先驅(qū)blogger創(chuàng)始人埃文·威廉姆斯(EvanWilliams)創(chuàng)建的新興公司Obvious推出了大微博服務(wù)。在最初階段,這項(xiàng)服務(wù)只是用于向好友的手機(jī)發(fā)送文本信息。Twitter是2006年3月由blogger的創(chuàng)始人威廉姆斯(EvanWilliams)推出的,英文原意為小鳥的嘰嘰喳喳聲,用戶能用如發(fā)手機(jī)短信的數(shù)百種工具更新信息。Twitter的出現(xiàn)把世人的眼光
28、引入了一個(gè)叫微博的小小世界里。Twitter是一個(gè)社交網(wǎng)絡(luò)及微博客服務(wù)。用戶可以經(jīng)由SMS、即時(shí)通信、電郵、Twitter網(wǎng)站或Twitter客戶端軟件(如Twitterrific)輸入最多140字的文字更新,Twitter被Alexa網(wǎng)頁流量統(tǒng)計(jì)評定為最受歡迎的50個(gè)網(wǎng)絡(luò)應(yīng)用之一。在2007年5月,國際間計(jì)算總共有111個(gè)類似Twitter的網(wǎng)站。然而,最值得注意的仍是Twitter,它于2007年在得克薩斯州奧斯汀舉辦的南非西南會議
29、贏得了部落格類的網(wǎng)站獎。Twitter的主要競爭對手是Plurk和Jaiku。后來微博客的新服務(wù)特色持續(xù)誕生,例如Plurk有時(shí)間軸可以觀看整合了視訊和照片的分享,Ide</p><p> 1.3.2國內(nèi)發(fā)展綜述</p><p> 從2007年中國第一家?guī)в形⒉┥实娘埛窬W(wǎng)開張,到2009年,微博這個(gè)全新的名詞,以摧枯拉朽的姿態(tài)掃蕩世界,打敗奧巴馬、甲流等等名詞,成為全世界最流行的詞匯
30、。伴隨而來的,是一場微博世界人氣的爭奪戰(zhàn),大批量的名人</p><p><b> 圖1-1 新浪微博</b></p><p> 被各大網(wǎng)站招攬,各路名人也以微博為平臺,在網(wǎng)絡(luò)世界里聚集人氣,同樣,新的傳播工具也造就了無數(shù)的草根英雄,從默默無聞到新的話語傳播者,往往只在一夜之間、寥寥數(shù)語。2009年7月中旬開始,國內(nèi)大批老牌微博產(chǎn)品(飯否、騰訊滔滔等)停止運(yùn)營,一些
31、新產(chǎn)品開始進(jìn)入人們的視野,像開放的嘰歪,6月份開放的Follow5,7月份開放的9911,8月份開放的新浪微博,其中Follow5在2009年7月19日孫楠大連演唱會上的亮相,是國內(nèi)第一次將微博引入大型演藝活動,與twitter當(dāng)年的發(fā)展頗有幾分神似。2010年國內(nèi)微博迎來來春天,微博像雨后春筍般崛起。四大門戶網(wǎng)站均開設(shè)微博。根據(jù)相關(guān)公開數(shù)據(jù),截至2010年1月份,該產(chǎn)品在全球已經(jīng)擁有7500萬注冊用戶。中國互聯(lián)網(wǎng)絡(luò)信息中心(CNNIC
32、)今日發(fā)布《第28次中國互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告》,報(bào)告顯示,2011年上半年,中國微博用戶從6331萬增至1.95億,增長約2倍。該《報(bào)告》指出,中國互聯(lián)網(wǎng)的普及率增至36.2%,較2010年增加1.9%。2011年上半年,我國微博用戶數(shù)量從6331萬增至1.95億,半年增幅高達(dá)208.9%。微博在網(wǎng)民中的普及率從13</p><p><b> 圖1-2騰訊微博</b></p>
33、;<p> 至今,新浪微博用戶數(shù)超過1億,得益于搶占了先機(jī),而且在整體的戰(zhàn)略執(zhí)行上也比較徹底到位,所以獲得了現(xiàn)在的地位。僅僅兩年時(shí)間,新浪微博就為新浪生下了一個(gè)價(jià)值幾十億美金的‘金蛋’。而另一個(gè)微博巨頭:騰訊微博,也呈現(xiàn)出發(fā)展迅猛的姿態(tài),騰訊擁有近5億的QQ注冊用戶,2億左右的活躍用戶。這部分人群很容易受潮流趨勢的影響,開通騰訊微博。通過騰訊微博能夠與QQ好友和騰訊微博上的其他用戶行行信息的分享。</p>
34、<p> 另外其作為重要的推廣渠道。企業(yè)用戶通過注冊騰訊官方微博,得到認(rèn)證后,能夠迅速的擴(kuò)大企業(yè)的知名度。個(gè)人用戶通過騰訊微博,也能再微博平臺進(jìn)行個(gè)人的推廣。目前,很多的社會事件揭露都來自于微博平臺。高校教育平臺也隨之建立,如騰訊微博校園上的高校新聞哥微博體系的發(fā)展,推動了中國教育事業(yè)信息化發(fā)展的步伐。</p><p> 二、系統(tǒng)開發(fā)環(huán)境簡介</p><p> 2.1系統(tǒng)開
35、發(fā)軟件環(huán)境</p><p> 2.1.1 Visualstudio.NET2010簡介</p><p> Visual Studio是微軟公司出品的一款大型應(yīng)用軟件,從最初的VisualStudio97開始就成為編程的重要工具。VisualStudio.NET是一套完整的開發(fā)工具,用于生成ASP Web應(yīng)用程序、XML Web services、桌面應(yīng)用程序和移動應(yīng)用程序。Visual
36、Basic.NET、Visual C++.NET、VisualC#.NET和VisualJ#.NET全都使用相同的集成開發(fā)環(huán)境(IDE),該環(huán)境允許它們共享工具并有助于創(chuàng)建混合語言解決方案。另外,這些語言利用了.NET Framework的功能,此框架提供對簡化ASP Web應(yīng)用程序和XML Web services開發(fā)的關(guān)鍵技術(shù)的訪問。Visual Studio 2010版本于2010年4月12日上市,其集成開發(fā)環(huán)境(IDE)的界面被
37、重新設(shè)計(jì)和組織,變得更加簡單明了。Visual Studio 201O同時(shí)帶來了NETFramework4.0,MicrosoftVisualStudio2010CTP(CommunityTechnologyPreview--CTP)并且支持開發(fā)面向Windows7的應(yīng)用程序。</p><p> (1) 支持 Windows Azure,微軟云計(jì)算架構(gòu)邁入重要里程碑。</p><p>
38、 (2) 助力移動與嵌入式裝置開發(fā),三屏一云商機(jī)無限。</p><p> (3) 實(shí)踐當(dāng)前最熱門的 Agile/Scrum 開發(fā)方法,強(qiáng)化團(tuán)隊(duì)競爭力。</p><p> (4) 升級的軟件測試功能及工具,為軟件質(zhì)量嚴(yán)格把關(guān)。</p><p> (5) 搭配 Windows 7,Silverlight 4 與 Office,發(fā)揮多核并行運(yùn)算威力,</p&g
39、t;<p> 創(chuàng)建美感與效能并重的新一代軟件。</p><p> (6) 支持最新C++標(biāo)準(zhǔn),增強(qiáng)IDE,切實(shí)提高程序員開發(fā)效率。</p><p> 2.1.2 騰訊微博開放平臺</p><p> 騰訊微博開放平臺,是基于騰訊微博系統(tǒng),為廣大開發(fā)者和用戶提供的開放數(shù)據(jù)分享與傳播平臺。廣大開發(fā)者和用戶登錄平臺后,就可以使用平臺提供的開 放API接
40、口,創(chuàng)建應(yīng)用從微博系統(tǒng)獲取信息,或?qū)⑿碌男畔鞑サ秸麄€(gè)微博系統(tǒng)中,豐富多樣的API接口和應(yīng)用,加上你的智慧,將創(chuàng)造出無窮的應(yīng)用和樂趣! </p><p> (1) 平臺介紹 — 在微博開放平臺能獲取到的資源及優(yōu)勢 </p><p> (2) 應(yīng)用開發(fā)說明 — 說明如何成為一個(gè)開發(fā)者并創(chuàng)建應(yīng)用 </p><p> (3) 應(yīng)用審核流程 — 審核應(yīng)用的來源字段能獲
41、得的好處,以及如何審核 </p><p> (4) 開發(fā)者協(xié)議 — 在此查看騰訊微博開放平臺開發(fā)者服務(wù)協(xié)議</p><p> 2.2系統(tǒng)開發(fā)硬件環(huán)境</p><p><b> 硬件配置如下:</b></p><p> 操作系統(tǒng): Windows 7操作系統(tǒng)</p><p> CPU:
42、 Intel(R)Core(TM)Duo CPU T6600 2.20GHz</p><p> 內(nèi)存: 5GB</p><p> 顯卡: NVIDIA Geforce GT 130M</p><p> 三、軟件需求分析與總體設(shè)計(jì)</p><p><b> 3.1系統(tǒng)需求分析</b&g
43、t;</p><p> 3.1.1 功能需求</p><p> 微博作為現(xiàn)在人們生活中必不可少的工具,通過微博這個(gè)媒介,發(fā)布身邊的新鮮事,并且能對某一熱門話題進(jìn)行評論,必要的時(shí)候還可收藏自己喜歡的文字??梢哉f文博極大地豐富了我們的生活。所以說,一個(gè)微博客戶端系統(tǒng),一定要包含如下的基本功能,來發(fā)揮微博的作用:</p><p> (1) 用戶登錄自己的賬戶并查看自
44、己的個(gè)人信息。</p><p> 通過OAUTH認(rèn)證方式,用戶可以在不告知客戶端自己的賬號和密碼的情況下,安全的通過客戶端登陸騰訊微博,并且獲取自己的相關(guān)信息。</p><p> (2) 用戶查看自己的新微博,獲取好友的最新動態(tài)。</p><p> 用戶可以查看自己關(guān)注對象的微博,并能夠通過隨時(shí)刷新獲得最新的微博動態(tài)。并且,用戶不僅能看到微博的文字內(nèi)容,還能看
45、到微博的相關(guān)配圖。</p><p> (3) 用戶發(fā)表新微博,告訴好友自己身邊的新鮮事。</p><p> 用戶可以發(fā)表新的微博,隨時(shí)更新自己的狀態(tài)。</p><p> (4) 用戶對好友的微博進(jìn)行評論,并且對自己喜愛的微博進(jìn)行收藏。</p><p> 用戶可以對看到的微博進(jìn)行評論,發(fā)表自己的意見,當(dāng)用戶看到感興趣的微博時(shí),還收藏此微
46、博。</p><p> 3.1.2 穩(wěn)定性需求</p><p> (1) 客戶端能夠長時(shí)間的正確運(yùn)行,如果客戶端出錯,客戶端會有相應(yīng)的出錯信息,能夠使用戶明白在哪里出錯了,該怎么辦。</p><p> (2) 減少無用的代碼,減少因此帶來的錯誤,并使客戶端能夠盡可能快的對數(shù)據(jù)進(jìn)行處理</p><p> 3.1.3 其它需求</p
47、><p> (1) 為保證客戶端的正常運(yùn)行,應(yīng)保證計(jì)算機(jī)能夠一直連接互聯(lián)網(wǎng)以獲取信息。</p><p> (2) 使用圖形化界面,可使用鼠標(biāo)或鍵盤作為標(biāo)準(zhǔn)輸入設(shè)備。</p><p> 3.2 微博客戶端設(shè)計(jì)概要</p><p> 微博客戶端運(yùn)行主要分為兩個(gè)階段,第一階段:認(rèn)證階段,第二階段:信息獲取階段。用戶首先通過客戶端打開的騰訊微博授
48、權(quán)界面獲得授權(quán)碼,然后將獲得授權(quán)碼交付給客戶端從而完成認(rèn)證階段??蛻舳送ㄟ^獲得認(rèn)證碼作為用戶授權(quán)的依據(jù),從而通過騰訊微博提供的API獲得用戶相關(guān)的微博信息。</p><p> 認(rèn)證 輸入賬戶相關(guān)信息</p><p><b> 階段</b></p><p><b> 返回授權(quán)碼&l
49、t;/b></p><p> 信息 通過授權(quán)信息</p><p> 獲取 </p><p> 階段 返回用戶微博的相關(guān)信息</p><p> 圖3-1客戶端運(yùn)行流程 </p><p> 3.
50、3 微博客戶端認(rèn)證機(jī)制</p><p> 3.3.1 騰訊微博 API OAuth認(rèn)證介紹</p><p> 騰訊微博開放平臺,是基于騰訊微博系統(tǒng),為廣大開發(fā)者和用戶提供的開放數(shù)據(jù)分享與傳播平臺。 廣大開發(fā)者和用戶登錄平臺后,就可以使用平臺提供的開放API接口,創(chuàng)建應(yīng)用從微博系統(tǒng)獲取信息,或?qū)⑿碌男畔鞑サ秸麄€(gè)微博系統(tǒng)中,豐富多樣的API接口和應(yīng)用,加上您的智慧,將創(chuàng)造出無窮的應(yīng)用和樂
51、趣。 騰訊微博API采用OAuth協(xié)議為第三方提供接入服務(wù),遵循[RFC-5849]規(guī)范。有關(guān)OAuth認(rèn)證的詳細(xì)說明,請閱讀官方OAuth規(guī)范。各種語言的OAuth 客戶端可以在Google-OAuth項(xiàng)目里找到。 騰訊微博API使用OAuth 1.0a版本。</p><p> 3.3.2 OAuth認(rèn)證機(jī)制介紹</p><p> OAUTH協(xié)議為用戶資源的授權(quán)提供了一個(gè)安全的、開放
52、而又簡易的標(biāo)準(zhǔn)。與以往的授權(quán)方式不同之處是OAUTH的授權(quán)不會使第三方觸及到用戶的帳號信息(如用戶名與密碼),即第三方無需使用用戶的用戶名與密碼就可以申請獲得該用戶資源的授權(quán),因此OAUTH是安全的。同時(shí),任何第三方都可以使用OAUTH認(rèn)證服務(wù),任何服務(wù)提供商都可以實(shí)現(xiàn)自身的OAUTH認(rèn)證服務(wù),因而OAUTH是開放的。業(yè)界提供了OAUTH的多種實(shí)現(xiàn)如PHP、JavaScript,Java,Ruby等各種語言開發(fā)包,大大節(jié)約了程序員的時(shí)間
53、,因而OAUTH是簡易的。目前互聯(lián)網(wǎng)很多服務(wù)如Open API,很多大公司如Google,Yahoo,Microsoft等都提供了OAUTH認(rèn)證服務(wù),這些都足以說明OAUTH標(biāo)準(zhǔn)逐漸成為開放資源授權(quán)的標(biāo)準(zhǔn)。OAUTH認(rèn)證具有以下特點(diǎn):</p><p> (1) 簡單:不管是OAUTH服務(wù)提供者還是應(yīng)用開發(fā)者,都很容易于理解與使用。</p><p> (2) 安全:沒有涉及到用戶密鑰等信
54、息,更安全更靈活。 (3) 開放:任何服務(wù)提供商都可以實(shí)現(xiàn)OAUTH,任何軟件開發(fā)商都可以使用OAUTH。</p><p> 3.3.3 OAUTH認(rèn)證機(jī)制的運(yùn)行過程</p><p> (1) 使用者(第三方軟件)向OAUTH服務(wù)提供商請求未授權(quán)的Request Token。向Request Token URL發(fā)起請求,請求需要帶上的參數(shù)見上圖。 </p>&l
55、t;p> (2) OAUTH服務(wù)提供商同意使用者的請求,并向其頒發(fā)未經(jīng)用戶授權(quán)的oauth_token與對應(yīng)的oauth_token_secret,并返回給使用者。 </p><p> (3) 使用者向OAUTH服務(wù)提供商請求用戶授權(quán)的Request Token。向User Authorization URL發(fā)起請求,請求帶上上步拿到的未授權(quán)的token與其密鑰。 </p><p&g
56、t; (4) OAUTH服務(wù)提供商將引導(dǎo)用戶授權(quán)。該過程可能會提示用戶,你想將哪些受保護(hù)的資源授權(quán)給該應(yīng)用。此步可能會返回授權(quán)的Request Token也可能不返回。如Yahoo OAUTH就不會返回任何信息給使用者。 </p><p> (5) Request Token 授權(quán)后,使用者將向Access Token URL發(fā)起請求,將上步授權(quán)的Request Token換取成Access Token。請求
57、的參數(shù)見上圖,這個(gè)比第一步A多了一個(gè)參數(shù)就是Request Token。 </p><p> (6) OAUTH服務(wù)提供商同意使用者的請求,并向其頒發(fā)Access Token與對應(yīng)的密鑰,并返回給使用者。 </p><p> (7) 使用者以后就可以使用上步返回的Access Token訪問用戶授權(quán)的資源。 </p><p> 從上面的步驟可以看出,用戶始終沒
58、有將其用戶名與密碼等信息提供給使用者(第三方軟件),從而更安全。用OAUTH實(shí)現(xiàn)背景一節(jié)中的典型案例:當(dāng)服務(wù)B(打印服務(wù))要訪問用戶的服務(wù)A(圖片服務(wù))時(shí),通過OAUTH機(jī)制,服務(wù)B向服務(wù)A請求未經(jīng)用戶授權(quán)的Request Token后,服務(wù)A將引導(dǎo)用戶在服務(wù)A的網(wǎng)站上登錄,并詢問用戶是否將圖片服務(wù)授權(quán)給服務(wù)B。用戶同意后,服務(wù)B就可以訪問用戶在服務(wù)A上的圖片服務(wù)。整個(gè)過程服務(wù)B沒有有觸及到用戶在服務(wù)A的帳號信息。</p>
59、<p> 圖3-2騰訊微博OAUTH授權(quán)認(rèn)證過程</p><p> 3.4 微博客戶端信息抓取流程</p><p> 騰訊微博的信息抓取是利用騰訊公司提供的API接口,添加上相應(yīng)的參數(shù),把信息傳遞給騰訊公司服務(wù)器,騰訊公司再把所要求的信息傳遞給本地,從而完成微博的信息傳遞過程。</p><p> 請求函數(shù)SyncRequest()</p&g
60、t;<p><b> 信息返回給客戶端</b></p><p> 圖3-3 SyncRequest()函數(shù)</p><p> 3.4.1 CWeiboParam參數(shù)類及微博相關(guān)參數(shù)簡介</p><p> 在每次向騰訊微博服務(wù)器請求用戶數(shù)據(jù)時(shí),都要都要將用戶想要進(jìn)行的操作以參數(shù)的形式傳遞給騰訊微博服務(wù)器,然后騰訊服務(wù)器將用戶
61、請求返回給客戶端。在騰訊公司提供的API中,參數(shù)類型是CWeiboParam類,通過該類提供的函數(shù)AddParam(const char* pKey, const char* pValue),將參數(shù)名和參數(shù)值傳遞到其類對象中。并且該類還提供Clear()函數(shù),用來清除該類對象里的所有參數(shù),以方便此類對象可以重復(fù)利用。</p><p> 由于騰訊微博API采用的是OAUTH簽權(quán)認(rèn)證方式,所以客戶端在每次請求用戶數(shù)
62、據(jù)時(shí),都要將用戶登錄時(shí)留下的Tokenkey,Tokensecret授權(quán)信息及開發(fā)者的身份信息Appkey,Appsecret傳遞進(jìn)去,以獲得獲取用戶信息的權(quán)限。</p><p> 除此之外,客戶端還要將用戶進(jìn)行相應(yīng)操作所需要的相關(guān)信息添加到該參數(shù)類中。例如,若用戶想要獲取一條微博數(shù)據(jù),就要將該微博的身份標(biāo)示ID已經(jīng)想要服務(wù)器返回的信息格式format傳到CWeiboParam參數(shù)類對象中</p>
63、<p> CWeiboParam& oParam; //定義類對象</p><p> oParam.AddParam("Appkey", strAppkey.c_str());</p><p> oParam.AddParam("Appsecret", strAppsecret.c_str());</p>
64、<p> oParam.AddParam("Tokenkey",strTokenkey.c_str());</p><p> oParam.AddParam("Tokensecret",strTokensecret.c_str());</p><p><b> //傳遞授權(quán)信息</b></p>
65、<p> oParams.AddParam("format","json");</p><p> oParams.AddParam("id",Wbid);</p><p> //傳遞將要獲取的微博相關(guān)信息</p><p> 3.4.2 信息傳遞函數(shù)SyncRequest()簡介</p
66、><p> SyncRequest()函數(shù)是騰訊微博API函數(shù)核心,通過這個(gè)函數(shù),客戶端將用戶將要進(jìn)行的操作,以及此操作需要的相關(guān)參數(shù)傳遞給騰訊微博服務(wù)器,并且把從服務(wù)器傳遞回來的相關(guān)數(shù)據(jù)存儲到某一參數(shù)中。</p><p> SyncRequest()函數(shù)的定義如下:</p><p> SyncRequest(const char* pReqUrl, EHttpM
67、ethod eHttpMethod, CWeiboParam oQWBlogParam, char* &pResultData,int &nLen);</p><p> 下面就來對此函數(shù)中的參數(shù)進(jìn)行說明:</p><p> (1) 其中pReqUrl參數(shù)的傳遞內(nèi)容是一個(gè)URL鏈接,該URL鏈接對應(yīng)的含義就是用戶想要進(jìn)行的操作,通過這個(gè)URL鏈接,客戶端就會告訴騰訊微博服
68、務(wù)器用戶想要進(jìn)行什么樣的操作。例如URL"http://open.t.qq.com/api/t/show",就是告訴騰訊微博服務(wù)器想要獲取該用戶的一條微博。</p><p> (2) SyncRequest()函數(shù)中第二個(gè)參數(shù)eHttpMethod是一個(gè)枚舉類型的參數(shù)其定義如下:</p><p> enum EHttpMethod</p><p
69、><b> {</b></p><p> EHttpMethod_Get,</p><p> EHttpMethod_Post,</p><p><b> };</b></p><p> 其中EHttpMethod_Get代表的是獲取信息,是要告訴服務(wù)器此次操作是想從服務(wù)器中獲取相關(guān)
70、的信息,比如說獲取微博,用戶信息等;而EHttpMethod_Post代表的是向服務(wù)器推送信息,告訴服務(wù)器我這里有信息需要讓服務(wù)器更新,比如說用戶發(fā)新微博,對某一微博進(jìn)行評論等,都需要用此參數(shù)。</p><p> (4) oQWBlogParam就是CWeiboParam參數(shù)類對象,用來傳遞與URL相對應(yīng)的操作所需要的參數(shù)信息。</p><p> (5) pResultData和nLe
71、n的作用是存儲從服務(wù)器返回的信息,以方便將來對信息進(jìn)行解析。</p><p> (6) SyncRequest()的返回值是一個(gè)枚舉類型的變量,通過SyncRequest()函數(shù)的返回值,可以知道客戶端的請求是否成功,或者如果失敗了,是是失敗在什么地方。例如:若返回值為HTTPRESULT_OK,表明返回成功,若返HTTPRESULT_ERROR,則表明HTTP請求的數(shù)據(jù)錯誤導(dǎo)致客戶端操作失敗。</p&g
72、t;<p> 以上就是SyncRequest()函數(shù)的所有參數(shù)的含義,通過此函數(shù)并添加上相應(yīng)的參數(shù),客戶端就能從騰訊服務(wù)器中獲取或推送消息,從而完成微博客戶端最核心的內(nèi)容。</p><p> 3.5 對返回值的解析</p><p> 當(dāng)客戶端使用SyncRequest()函數(shù)從騰訊服務(wù)器請求數(shù)據(jù)后,服務(wù)器會返回給客戶端一個(gè)字符串,這個(gè)字符串會根據(jù)我們請求數(shù)據(jù)時(shí)填寫的參數(shù)
73、類型返回不同格式的字符串,主要分為兩種,Json格式和XML格式,通過對這兩種格式的解析,我們就能獲得我們想要的相關(guān)數(shù)據(jù)。</p><p> 3.5.1 Json格式簡介</p><p> JSON(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式。它基于JavaScript(Standard ECMA-262 3rd Edition - Decemb
74、er 1999)的一個(gè)子集。 JSON采用完全獨(dú)立于語言的文本格式,但是也使用了類似于C語言家族的習(xí)慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。這些特性使JSON成為理想的數(shù)據(jù)交換語言。易于人閱讀和編寫,同時(shí)也易于機(jī)器解析和生成。JSON建構(gòu)有兩種結(jié)構(gòu):</p><p> (1) “名稱/值”對的集合(A collection of name/value p
75、airs)。不同的語言中,它被理解為對象(object),記錄(record),結(jié)構(gòu)(struct),字典(dictionary),哈希表(hash table),有鍵列表(keyed list),或者關(guān)聯(lián)數(shù)組(associative array)。</p><p> (2) 值的有序列表(An ordered list of values)。在大部分語言中,它被理解為數(shù)組(array)。</p>
76、<p><b> 例如:</b></p><p><b> {</b></p><p> name:"中國",</p><p> province:[</p><p><b> {</b></p><p> n
77、ame:"黑龍江",</p><p><b> cities:{</b></p><p> city:["哈爾濱","大慶"]</p><p><b> }</b></p><p><b> },</b><
78、;/p><p><b> {</b></p><p> name:"廣東",</p><p><b> cities:{</b></p><p> city:["廣州","深圳","珠海"]</p>&
79、lt;p><b> }</b></p><p><b> },</b></p><p><b> ]</b></p><p><b> }</b></p><p> 其中name和”中國”就是對應(yīng)的名稱和鍵值,而province是一個(gè)數(shù)組結(jié)
80、構(gòu),它的里面包含了幾組類型相似的結(jié)構(gòu),如上例的name:”黑龍江”和name:”廣東”就是兩個(gè)相似結(jié)構(gòu)結(jié)構(gòu)里代表相同涵義的對象。</p><p> 3.5.2 騰訊微博API對Json格式的解析</p><p> 在騰訊提供的API中使用JsonParser類對返回的字符串進(jìn)行Json格式的解析,一般情況下分為以下三步:</p><p> (1) 通過Json
81、Parser類提供的Parse函數(shù),將返回的字符串轉(zhuǎn)換成Json字符串,例如:</p><p> JsonParser theGwParser;//定義JsonParser 類對象theGwParser.Parse(strGwResult.c_str());//完成字符串的轉(zhuǎn)換</p><p> 這樣就把返回值strGwResult轉(zhuǎn)換成了Json字符串格式。</p>&
82、lt;p> (2) 通過JsonParser類提供的GetChild(const char* pName)函數(shù),獲得第一步中得到的Json字符串的子節(jié)點(diǎn),如果需要獲得的內(nèi)容是該子節(jié)點(diǎn)中的子節(jié)點(diǎn),則可以繼續(xù)使用GetChild(const char* pName)函數(shù)以后的自己需要的關(guān)鍵字;如果獲得的子節(jié)點(diǎn)中是數(shù)組格式,則可以使用GetChild(const char* pName)函數(shù)的重載函數(shù)GetChild(const in
83、t nIndex)獲得相應(yīng)的數(shù)組序列內(nèi)容,再使用GetChild(const char* pName)函數(shù)獲得數(shù)組內(nèi)容中關(guān)鍵字。GetChild()函數(shù)的返回值依舊是JsonParser類型的字符串。例如:</p><p> 若Json字符串里面不含數(shù)組:</p><p> JsonParser name = theGwParser.GetChild("name"
84、);//找到關(guān)鍵字name</p><p> 若Json字符串里面含數(shù)組:</p><p> JsonParser info = theGwParser.GetChild(0);//定位到響應(yīng)的數(shù)組序號</p><p> JsonParser name = info.GetChild("name");//找到關(guān)鍵字name</p&
85、gt;<p> JsonParser id = info.GetChild("id");//找到關(guān)鍵字ID</p><p> (3) 當(dāng)我們找到想要的關(guān)鍵字之后,我們需要使用JsonParser類提供GetString()函數(shù)獲得該關(guān)鍵字的值,GetString()函數(shù)的返回值為char* 類型的;如果關(guān)鍵字的值的類型是int類型的,則我們需要使用GetInt()函數(shù),獲得
86、該關(guān)鍵字的值</p><p><b> 例如:</b></p><p> char* Myname = name.GetString();//將name的值賦值給Myname</p><p> int ids = id.GetInt() ;//將id的值賦值給ids</p><p> 通過以上三個(gè)步驟,我們就能夠
87、從服務(wù)器返回的字符串中獲得我們想要的相關(guān)信息,從而信息呈獻(xiàn)給觀眾。</p><p> 3.5.3 XML格式簡介</p><p> 可擴(kuò)展標(biāo)記語言 (Extensible Markup Language, XML) ,用于標(biāo)記電子文件使其具有結(jié)構(gòu)性的標(biāo)記語言,可以用來標(biāo)記數(shù)據(jù)、定義數(shù)據(jù)類型,是一種允許用戶對自己的標(biāo)記語言進(jìn)行定義的源語言。 XML是標(biāo)準(zhǔn)通用標(biāo)記語言 (SGML) 的子集
88、,非常適合 Web 傳輸。XML 提供統(tǒng)一的方法來描述和交換獨(dú)立于應(yīng)用程序或供應(yīng)商的結(jié)構(gòu)化數(shù)據(jù)。它有如下幾個(gè)特點(diǎn): (1) 簡單: XML與Access,Oracle和SQL Server等數(shù)據(jù)庫不同,數(shù)據(jù)庫提供了更強(qiáng)有力的數(shù)據(jù)存儲和分析能力,例如:數(shù)據(jù)索引、排序、查找、相關(guān)一致性等,XML僅僅是存儲數(shù)據(jù)。事實(shí)上XML與其他數(shù)據(jù)表現(xiàn)形式最大的不同是:他極其簡單。這是一個(gè)看上去有點(diǎn)瑣細(xì)的優(yōu)點(diǎn),但正是這點(diǎn)使XML與眾不同。
89、(2) 結(jié)合: XML的簡單使其易于在任何應(yīng)用程序中讀寫數(shù)據(jù),這使XML很快成為數(shù)據(jù)交換的唯一公共語言,雖然不同的應(yīng)用軟件也支持其它的數(shù)據(jù)交換格式,但不久之后他們都將支持XML,那就意味著程序可以更容易的與Windows,Mac OS,Linux以及其他平臺下產(chǎn)生的信息結(jié)合,然后可以很容易加載XML數(shù)</p><p> 3.5.4 騰訊微博API對XML格式的解析</p><p>
90、在騰訊微博提供的API中,XML解析的方法與Json格式解析的方法是一模一樣的,先利用提供的Parse()函數(shù)將返回的字符串轉(zhuǎn)換為XML格式,然后使用GetChild()函數(shù)獲得相應(yīng)的子標(biāo)簽,最后再用GetString()函數(shù)將標(biāo)簽的值提取出來,從而完成對XML格式的解析。</p><p> 3.6 字符串格式的轉(zhuǎn)換</p><p> 前面通過使用GetString()函數(shù)得到Json
91、格式或XML格式關(guān)鍵字的值,但是一般情況得到的此值是不能直接使用的,因?yàn)樵赩S2010中默認(rèn)使用的是Unicode字符集,而騰訊微博服務(wù)器返回的值為多字節(jié)字符集,所以直接存在一個(gè)轉(zhuǎn)換的問題;另外在VS2010中,字符串的處理一般使用CString格式進(jìn)行字符串的處理,而在處理將多字節(jié)字符集轉(zhuǎn)換為Unicode字符集的過程中,函數(shù)的參數(shù)及返回值多為char*類型或者string類型,所以中間又牽涉到一個(gè)char*,string和CStri
92、ng三種類型的轉(zhuǎn)換問題。</p><p> 3.6.1 Unicode字符集與多字節(jié)字符集的區(qū)別</p><p> 多字節(jié)字符集(multi-byte character set or MBCS),是指在編碼中,一個(gè)字符由后者多個(gè)字符共同表示在Windows里的MBCS包含兩種字符類型:單字節(jié)字符(single byte characters)和雙字節(jié)字符(double byte ch
93、aracters)。由于Windows里使用的多字節(jié)字符絕大部分是兩個(gè)字節(jié)長,MBCS常被DBCS代替。 Unicode是一種所有的字符都使用兩個(gè)字節(jié)編碼的編碼模式。Unicode字符有時(shí)也被稱作寬字符。 Unicode與MBCS的區(qū)別是:MBCS字符可以使用不同長度的字節(jié)編碼,而Unicode只能使用兩字節(jié)進(jìn)行編碼。例如"BOb"這個(gè)單詞在系統(tǒng)中存儲的形式: Unicode的存
94、儲形式: | 42 00 | 6F 00 | 62 00 | 00 00 | |-----------------------------------------------| | B | &
95、#160; o | b | BO</p><p> MBCS的存儲形式: | 42 | 6F | 6
96、2 | 00 | |-----------------------------------------------| | B | o | b
97、60; | BOS |</p><p> 從上圖中就可以可以清楚地看出MBCS格式與Unicode存儲形式的區(qū)別,所以在不同編碼格式字符串中,如果不進(jìn)行轉(zhuǎn)換,則在字符串的處理過程中勢必會造成亂碼等錯誤。在騰訊微博提供的API中,MBCS與Unicode的轉(zhuǎn)換是通過Utf8ToMbcs()函數(shù)進(jìn)行的.</p><p> 3.6.2 char*、string和CStri
98、ng的轉(zhuǎn)換</p><p> string和CString均是字符串模板類,string為標(biāo)準(zhǔn)模板類(STL)定義的字符串類,已經(jīng)納入C++標(biāo)準(zhǔn)之中而char*為C編程中最常用的字符串指針,一般以'\0'為結(jié)束標(biāo)志。它們?nèi)咧g的轉(zhuǎn)換方法如下:</p><p> (1) string 與 CString</p><p> string轉(zhuǎn)CStr
99、ing :CString.format(”%s”, string.c_str());</p><p> CString轉(zhuǎn)string :string s(CString.GetBuffer());</p><p> (2) char* 與CString</p><p> char* 轉(zhuǎn) CString:CString.format(”%s”, char*);&
100、lt;/p><p> CString 轉(zhuǎn) char*:char* p= CString.GetBuffer(CString.GetLength());</p><p> (3) char* 與string</p><p> char轉(zhuǎn)string :string s(char *);</p><p> string轉(zhuǎn)char*:char
101、*p = string.c_str();</p><p> 四、軟件詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)</p><p> 4.1 相關(guān)變量的定義</p><p> 在程序中,因?yàn)橐l繁的使用用戶的相關(guān)信息,且不只要在一個(gè)才類里面使用,所以,為了方便使用,把用戶的相關(guān)信息,包括姓名,昵稱,粉絲數(shù),廣播數(shù)等等定義為一個(gè)全局結(jié)構(gòu)體,這樣就可以方便的在各個(gè)類里進(jìn)行調(diào)用了。定義如下:<
102、;/p><p> typedef struct info</p><p><b> {</b></p><p> CString infName;//用戶名稱 </p><p> CString infNick; //用戶昵稱</p><p> CString infHead ; //用戶頭
103、像的網(wǎng)絡(luò)地址</p><p> CString infHeadPath ; //用戶頭像的本地地址</p><p> CString infId ; //用戶ID</p><p> CString infFansnum ; //用戶粉絲數(shù)</p><p> CString infIdolnum ; //用戶收聽數(shù)</p>
104、<p> CString infTweetnum ; //用戶廣播數(shù)</p><p> }information ;</p><p> extern information MyInf ;</p><p> 同樣的,對于某一條微博的相關(guān)信息,也需要在不同的幾個(gè)類里使用,所以,把一條微博的相關(guān)信息也定義為一個(gè)全局的結(jié)構(gòu)體變量,定義如下:</
105、p><p> typedef struct WBInf</p><p><b> {</b></p><p> CString WBId;//微博的ID</p><p> CString WB;//微博的內(nèi)容</p><p> CString WBPicUrl;//微博配圖的網(wǎng)路地址<
106、/p><p> CString WBPicPath;//微博配圖的本地地址</p><p> }MyWbInf ;</p><p> extern MyWbInf WbListInf ;</p><p> 4.2 相關(guān)圖片的獲取和顯示</p><p> 在一個(gè)微博客戶端中,不僅要能顯示用戶的頭像圖片,而且還有很多
107、微博是配備了圖片,所以圖片的顯示也是微博客戶端的一個(gè)重要功能。用戶圖像的獲取與微博的圖片獲取方式相似。在客戶端獲得獲取用戶的相關(guān)信息后,對服務(wù)器的返回值進(jìn)行JSON類型的解析,其中包含有“head”關(guān)鍵字,此關(guān)鍵字的值就是用戶頭像在網(wǎng)絡(luò)上url地址,在這里,我們通過URLDownloadToFile()函數(shù),將用戶的頭像從網(wǎng)絡(luò)上的url地址下載下來,實(shí)現(xiàn)代碼如下:</p><p> URLDownloadToF
108、ile(0,MyInf.infHead,L"c:\\120.bmp",0,NULL);</p><p> 其中MyInf.infHead中存儲的用戶頭像的網(wǎng)絡(luò)地址,“c:\\120.bmp”是圖像的存儲位置。</p><p> 微博配圖的獲取用戶頭像的獲取方式基本相似,只不過微博配圖網(wǎng)絡(luò)地址是通過解析獲取微博命令的返回值而得到的,同樣的使用URLDownloadTo
109、File()函數(shù)將其下載下來。</p><p> 因?yàn)樵趍fc中的控件只能加載BMP格式的圖片,所以使用URLDownloadToFile()</p><p> 函數(shù)時(shí),將圖片類型保存為了bmp格式。</p><p> 在客戶端顯示圖片的方面,我們使用的MFC提供的Picture Control控件,通過獲取該控件的顯示區(qū)域,將圖片顯示在正確的位置。實(shí)現(xiàn)代碼如
110、下:</p><p> CRect rect;</p><p> m_staticBitMap.GetClientRect(&rect); //獲取相應(yīng)控件的顯示區(qū)域</p><p> CImage image; </p><p> image.Load(MyInf.infHeadPath); //加載要顯
111、示的圖片路徑</p><p> CDC* pDC = m_staticBitMap.GetWindowDC(); </p><p> image.Draw( pDC -> m_hDC,rect); //圖片在控件上顯示 </p><p> ReleaseDC(pDC);</p><p><b> retur
112、n 0;</b></p><p><b> 效果圖如下:</b></p><p> 圖4-1 用戶頭像的顯示</p><p> 圖4-2 微博配圖的顯示</p><p> 4.3 用戶登錄的設(shè)計(jì)與實(shí)現(xiàn)</p><p> 用戶在登陸客戶端的時(shí)候,先點(diǎn)擊客戶端上的授權(quán)鏈接到騰訊授
113、權(quán)服務(wù)頁面上輸入自己的用戶名和密碼,將得到的授權(quán)碼輸入到客戶端中就可完成登陸操作。如果用戶輸入的授權(quán)碼得不到騰訊服務(wù)器的認(rèn)證,則用戶的登陸就失敗,程序就無法再向下進(jìn)行。登陸界面如下:</p><p><b> 圖4-3 登陸界面</b></p><p> 用戶點(diǎn)擊“點(diǎn)擊從騰訊微博登陸”鏈接后,客戶端會和騰訊服務(wù)器通訊完成OAUTH認(rèn)證的第一和第二步,當(dāng)用戶輸入從授
114、權(quán)頁面獲得授權(quán)碼之后,客戶端會完成授權(quán)認(rèn)證的第三部,獲得TokenKey和TokenSecrect,從而獲得獲取用戶信息的權(quán)限。點(diǎn)擊“點(diǎn)擊從騰訊微博登陸”后的事件響應(yīng)如下:</p><p> void CLogInDlg::OnNMClickSyslink1(NMHDR *pNMHDR, LRESULT *pResult)</p><p><b> {</b>&l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(jì)(論文)騰訊微博客戶端的設(shè)計(jì)與實(shí)現(xiàn)
- 基于Android的騰訊微博客戶端應(yīng)用軟件設(shè)計(jì).pdf
- 基于android系統(tǒng)的騰訊微博客戶端的開發(fā).pdf
- 基于android系統(tǒng)的騰訊微博客戶端的開發(fā)(1)
- 移動博客客戶端軟件設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于android的微博客戶端
- 畢業(yè)設(shè)計(jì)--簡單ftp客戶端的實(shí)現(xiàn)
- 本科畢業(yè)設(shè)計(jì)-----新浪微博android客戶端的實(shí)現(xiàn)
- email客戶端畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)-----新浪微博android客戶端的實(shí)現(xiàn)(含外文翻譯)
- 畢業(yè)設(shè)計(jì)--簡單Ftp客戶端的實(shí)現(xiàn).doc
- 基于Android的微博客戶端 .doc
- 基于Unity引擎的騰訊桌球客戶端的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于android的微博客戶端(1).pot
- 基于android的微博客戶端(1).pot
- 畢業(yè)設(shè)計(jì)---e-mail客戶端管理程序的設(shè)計(jì)與實(shí)現(xiàn)
- 視頻監(jiān)控系統(tǒng)的客戶端設(shè)計(jì)—畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)-基于手機(jī)客戶端的圖書搜索系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 客戶端CableModem的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 畢業(yè)設(shè)計(jì)視頻監(jiān)控系統(tǒng)的客戶端設(shè)計(jì).doc
評論
0/150
提交評論