freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

騰訊微博客戶端的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(編輯修改稿)

2025-08-31 05:04 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 階段 返回用戶微博的相關(guān)信息圖31客戶端運(yùn)行流程 微博客戶端認(rèn)證機(jī)制 騰訊微博 API OAuth認(rèn)證介紹騰訊微博開(kāi)放平臺(tái),是基于騰訊微博系統(tǒng),為廣大開(kāi)發(fā)者和用戶提供的開(kāi)放數(shù)據(jù)分享與傳播平臺(tái)。 廣大開(kāi)發(fā)者和用戶登錄平臺(tái)后,就可以使用平臺(tái)提供的開(kāi)放API接口,創(chuàng)建應(yīng)用從微博系統(tǒng)獲取信息,或?qū)⑿碌男畔鞑サ秸麄€(gè)微博系統(tǒng)中,豐富多樣的API接口和應(yīng)用,加上您的智慧,將創(chuàng)造出無(wú)窮的應(yīng)用和樂(lè)趣。 騰訊微博API采用OAuth協(xié)議為第三方提供接入服務(wù),遵循[RFC5849]規(guī)范。有關(guān)OAuth認(rèn)證的詳細(xì)說(shuō)明,請(qǐng)閱讀官方OAuth規(guī)范。各種語(yǔ)言的OAuth 客戶端可以在GoogleOAuth項(xiàng)目里找到。 騰訊微博API使用OAuth 。 OAuth認(rèn)證機(jī)制介紹 OAUTH協(xié)議為用戶資源的授權(quán)提供了一個(gè)安全的、開(kāi)放而又簡(jiǎn)易的標(biāo)準(zhǔn)。與以往的授權(quán)方式不同之處是OAUTH的授權(quán)不會(huì)使第三方觸及到用戶的帳號(hào)信息(如用戶名與密碼),即第三方無(wú)需使用用戶的用戶名與密碼就可以申請(qǐng)獲得該用戶資源的授權(quán),因此OAUTH是安全的。同時(shí),任何第三方都可以使用OAUTH認(rèn)證服務(wù),任何服務(wù)提供商都可以實(shí)現(xiàn)自身的OAUTH認(rèn)證服務(wù),因而OAUTH是開(kāi)放的。業(yè)界提供了OAUTH的多種實(shí)現(xiàn)如PHP、JavaScript,Java,Ruby等各種語(yǔ)言開(kāi)發(fā)包,大大節(jié)約了程序員的時(shí)間,因而OAUTH是簡(jiǎn)易的。目前互聯(lián)網(wǎng)很多服務(wù)如Open API,很多大公司如Google,Yahoo,Microsoft等都提供了OAUTH認(rèn)證服務(wù),這些都足以說(shuō)明OAUTH標(biāo)準(zhǔn)逐漸成為開(kāi)放資源授權(quán)的標(biāo)準(zhǔn)。OAUTH認(rèn)證具有以下特點(diǎn): (1) 簡(jiǎn)單:不管是OAUTH服務(wù)提供者還是應(yīng)用開(kāi)發(fā)者,都很容易于理解與使用?!? (2) 安全:沒(méi)有涉及到用戶密鑰等信息,更安全更靈活。 (3) 開(kāi)放:任何服務(wù)提供商都可以實(shí)現(xiàn)OAUTH,任何軟件開(kāi)發(fā)商都可以使用OAUTH。 OAUTH認(rèn)證機(jī)制的運(yùn)行過(guò)程 (1) 使用者(第三方軟件)向OAUTH服務(wù)提供商請(qǐng)求未授權(quán)的Request Token。向Request Token URL發(fā)起請(qǐng)求,請(qǐng)求需要帶上的參數(shù)見(jiàn)上圖。   (2) OAUTH服務(wù)提供商同意使用者的請(qǐng)求,并向其頒發(fā)未經(jīng)用戶授權(quán)的oauth_token與對(duì)應(yīng)的oauth_token_secret,并返回給使用者。   (3) 使用者向OAUTH服務(wù)提供商請(qǐng)求用戶授權(quán)的Request Token。向User Authorization URL發(fā)起請(qǐng)求,請(qǐng)求帶上上步拿到的未授權(quán)的token與其密鑰。   (4) OAUTH服務(wù)提供商將引導(dǎo)用戶授權(quán)。該過(guò)程可能會(huì)提示用戶,你想將哪些受保護(hù)的資源授權(quán)給該應(yīng)用。此步可能會(huì)返回授權(quán)的Request Token也可能不返回。如Yahoo OAUTH就不會(huì)返回任何信息給使用者。   (5) Request Token 授權(quán)后,使用者將向Access Token URL發(fā)起請(qǐng)求,將上步授權(quán)的Request Token換取成Access Token。請(qǐng)求的參數(shù)見(jiàn)上圖,這個(gè)比第一步A多了一個(gè)參數(shù)就是Request Token。   (6) OAUTH服務(wù)提供商同意使用者的請(qǐng)求,并向其頒發(fā)Access Token與對(duì)應(yīng)的密鑰,并返回給使用者。   (7) 使用者以后就可以使用上步返回的Access Token訪問(wèn)用戶授權(quán)的資源。   從上面的步驟可以看出,用戶始終沒(méi)有將其用戶名與密碼等信息提供給使用者(第三方軟件),從而更安全。用OAUTH實(shí)現(xiàn)背景一節(jié)中的典型案例:當(dāng)服務(wù)B(打印服務(wù))要訪問(wèn)用戶的服務(wù)A(圖片服務(wù))時(shí),通過(guò)OAUTH機(jī)制,服務(wù)B向服務(wù)A請(qǐng)求未經(jīng)用戶授權(quán)的Request Token后,服務(wù)A將引導(dǎo)用戶在服務(wù)A的網(wǎng)站上登錄,并詢問(wèn)用戶是否將圖片服務(wù)授權(quán)給服務(wù)B。用戶同意后,服務(wù)B就可以訪問(wèn)用戶在服務(wù)A上的圖片服務(wù)。整個(gè)過(guò)程服務(wù)B沒(méi)有有觸及到用戶在服務(wù)A的帳號(hào)信息。圖32騰訊微博OAUTH授權(quán)認(rèn)證過(guò)程 微博客戶端信息抓取流程 騰訊微博的信息抓取是利用騰訊公司提供的API接口,添加上相應(yīng)的參數(shù),把信息傳遞給騰訊公司服務(wù)器,騰訊公司再把所要求的信息傳遞給本地,從而完成微博的信息傳遞過(guò)程。騰訊微博服務(wù)器含有授權(quán)信息及請(qǐng)求信息的相關(guān)參數(shù):oParam 請(qǐng)求函數(shù)SyncRequest() 信息返回給客戶端圖33 SyncRequest()函數(shù) CWeiboParam參數(shù)類及微博相關(guān)參數(shù)簡(jiǎn)介 在每次向騰訊微博服務(wù)器請(qǐng)求用戶數(shù)據(jù)時(shí),都要都要將用戶想要進(jìn)行的操作以參數(shù)的形式傳遞給騰訊微博服務(wù)器,然后騰訊服務(wù)器將用戶請(qǐng)求返回給客戶端。在騰訊公司提供的API中,參數(shù)類型是CWeiboParam類,通過(guò)該類提供的函數(shù)AddParam(const char* pKey, const char* pValue),將參數(shù)名和參數(shù)值傳遞到其類對(duì)象中。并且該類還提供Clear()函數(shù),用來(lái)清除該類對(duì)象里的所有參數(shù),以方便此類對(duì)象可以重復(fù)利用。 由于騰訊微博API采用的是OAUTH簽權(quán)認(rèn)證方式,所以客戶端在每次請(qǐng)求用戶數(shù)據(jù)時(shí),都要將用戶登錄時(shí)留下的Tokenkey,Tokensecret授權(quán)信息及開(kāi)發(fā)者的身份信息Appkey,Appsecret傳遞進(jìn)去,以獲得獲取用戶信息的權(quán)限。 除此之外,客戶端還要將用戶進(jìn)行相應(yīng)操作所需要的相關(guān)信息添加到該參數(shù)類中。例如,若用戶想要獲取一條微博數(shù)據(jù),就要將該微博的身份標(biāo)示ID已經(jīng)想要服務(wù)器返回的信息格式format傳到CWeiboParam參數(shù)類對(duì)象中 CWeiboParamamp。 oParam。 //定義類對(duì)象(Appkey, ())。(Appsecret, ())。(Tokenkey,())。(Tokensecret,())。 //傳遞授權(quán)信息(format,json)。(id,Wbid)。//傳遞將要獲取的微博相關(guān)信息 信息傳遞函數(shù)SyncRequest()簡(jiǎn)介 SyncRequest()函數(shù)是騰訊微博API函數(shù)核心,通過(guò)這個(gè)函數(shù),客戶端將用戶將要進(jìn)行的操作,以及此操作需要的相關(guān)參數(shù)傳遞給騰訊微博服務(wù)器,并且把從服務(wù)器傳遞回來(lái)的相關(guān)數(shù)據(jù)存儲(chǔ)到某一參數(shù)中。SyncRequest()函數(shù)的定義如下:SyncRequest(const char* pReqUrl, EHttpMethod eHttpMethod, CWeiboParam oQWBlogParam, char* amp。pResultData,int amp。nLen)。下面就來(lái)對(duì)此函數(shù)中的參數(shù)進(jìn)行說(shuō)明: (1) 其中pReqUrl參數(shù)的傳遞內(nèi)容是一個(gè)URL鏈接,該URL鏈接對(duì)應(yīng)的含義就是用戶想要進(jìn)行的操作,通過(guò)這個(gè)URL鏈接,客戶端就會(huì)告訴騰訊微博服務(wù)器用戶想要進(jìn)行什么樣的操作。例如URL,就是告訴騰訊微博服務(wù)器想要獲取該用戶的一條微博。 (2) SyncRequest()函數(shù)中第二個(gè)參數(shù)eHttpMethod是一個(gè)枚舉類型的參數(shù)其定義如下:enum EHttpMethod{ EHttpMethod_Get, EHttpMethod_Post,}。其中EHttpMethod_Get代表的是獲取信息,是要告訴服務(wù)器此次操作是想從服務(wù)器中獲取相關(guān)的信息,比如說(shuō)獲取微博,用戶信息等;而EHttpMethod_Post代表的是向服務(wù)器推送信息,告訴服務(wù)器我這里有信息需要讓服務(wù)器更新,比如說(shuō)用戶發(fā)新微博,對(duì)某一微博進(jìn)行評(píng)論等,都需要用此參數(shù)。 (4) oQWBlogParam就是CWeiboParam參數(shù)類對(duì)象,用來(lái)傳遞與URL相對(duì)應(yīng)的操作所需要的參數(shù)信息。 (5) pResultData和nLen的作用是存儲(chǔ)從服務(wù)器返回的信息,以方便將來(lái)對(duì)信息進(jìn)行解析。 (6) SyncRequest()的返回值是一個(gè)枚舉類型的變量,通過(guò)SyncRequest()函數(shù)的返回值,可以知道客戶端的請(qǐng)求是否成功,或者如果失敗了,是是失敗在什么地方。例如:若返回值為HTTPRESULT_OK,表明返回成功,若返HTTPRESULT_ERROR,則表明HTTP請(qǐng)求的數(shù)據(jù)錯(cuò)誤導(dǎo)致客戶端操作失敗。 以上就是SyncRequest()函數(shù)的所有參數(shù)的含義,通過(guò)此函數(shù)并添加上相應(yīng)的參數(shù),客戶端就能從騰訊服務(wù)器中獲取或推送消息,從而完成微博客戶端最核心的內(nèi)容。 對(duì)返回值的解析 當(dāng)客戶端使用SyncRequest()函數(shù)從騰訊服務(wù)器請(qǐng)求數(shù)據(jù)后,服務(wù)器會(huì)返回給客戶端一個(gè)字符串,這個(gè)字符串會(huì)根據(jù)我們請(qǐng)求數(shù)據(jù)時(shí)填寫(xiě)的參數(shù)類型返回不同格式的字符串,主要分為兩種,Json格式和XML格式,通過(guò)對(duì)這兩種格式的解析,我們就能獲得我們想要的相關(guān)數(shù)據(jù)。 Json格式簡(jiǎn)介JSON(JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式。它基于JavaScript(Standard ECMA262 3rd Edition December 1999)的一個(gè)子集。 JSON采用完全獨(dú)立于語(yǔ)言的文本格式,但是也使用了類似于C語(yǔ)言家族的習(xí)慣(包括C, C++, C, Java, JavaScript, Perl, Python等)。這些特性使JSON成為理想的數(shù)據(jù)交換語(yǔ)言。易于人閱讀和編寫(xiě),同時(shí)也易于機(jī)器解析和生成。JSON建構(gòu)有兩種結(jié)構(gòu): (1) “名稱/值”對(duì)的集合(A collection of name/value pairs)。不同的語(yǔ)言中,它被理解為對(duì)象(object),記錄(record),結(jié)構(gòu)(struct),字典(dictionary),哈希表(hash table),有鍵列表(keyed list),或者關(guān)聯(lián)數(shù)組(associative array)。 (2) 值的有序列表(An ordered list of values)。在大部分語(yǔ)言中,它被理解為數(shù)組(array)。例如:{ name:中國(guó),province:[{name:黑龍江,cities:{city:[哈爾濱,大慶]}},{name:廣東,cities:{city:[廣州,深圳,珠海]}}, ]}其中name和”中國(guó)”就是對(duì)應(yīng)的名稱和鍵值,而province是一個(gè)數(shù)組結(jié)構(gòu),它的里面包含了幾組類型相似的結(jié)構(gòu),如上例的name:”黑龍江”和name:”廣東”就是兩個(gè)相似結(jié)構(gòu)結(jié)構(gòu)里代表相同涵義的對(duì)象。 騰訊微博API對(duì)Json格式的解析 在騰訊提供的API中使用JsonParser類對(duì)返回的字符串進(jìn)行Json格式的解析,一般情況下分為以下三步: (1) 通過(guò)JsonParser類提供的Parse函數(shù),將返回的字符串轉(zhuǎn)換成Json字符串,例如:JsonParser theGwParser。//定義JsonParser (());//完成字符串的轉(zhuǎn)換這樣就把返回值strGwResult轉(zhuǎn)換成了Json字符串格式。 (2) 通過(guò)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 int nIndex)獲得相應(yīng)的數(shù)組序列內(nèi)容,再使用GetChild(const char* pName)函數(shù)獲得數(shù)組內(nèi)容中關(guān)鍵字。GetChild()函數(shù)的返回值依舊是JsonParser類型的字符串。例如:若Json字符串里面不含數(shù)組:JsonParser
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1