翻譯|使用教程|編輯:鮑佳佳|2021-03-02 11:36:19.523|閱讀 214 次
概述:本文將創(chuàng)建一個(gè)Tweet Search一個(gè)QML應(yīng)用程序,它使用許多查詢(xún)參數(shù)來(lái)搜索發(fā)布到Twitter服務(wù)的項(xiàng)目。可以搜索來(lái)自指定用戶(hù)的推文,主題標(biāo)簽或搜索短語(yǔ)。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷(xiāo)售中 >>
Qt是一個(gè)跨平臺(tái)框架,通常用作圖形工具包,它不僅創(chuàng)建CLI應(yīng)用程序中非常有用。而且它也可以在三種主要的臺(tái)式機(jī)操作系統(tǒng)以及移動(dòng)操作系統(tǒng)(如Symbian,Nokia Belle,Meego Harmattan,MeeGo或BB10)以及嵌入式設(shè)備,Android(Necessitas)和iOS的端口上運(yùn)行。現(xiàn)在我們?yōu)槟闾峁┝嗣赓M(fèi)的試用版。
Qt組件推薦:
以下是具有3D效果的Twitter搜索客戶(hù)端。
Tweet Search是一個(gè)QML應(yīng)用程序,它使用許多查詢(xún)參數(shù)來(lái)搜索發(fā)布到Twitter服務(wù)的項(xiàng)目。可以搜索來(lái)自指定用戶(hù)的推文,主題標(biāo)簽或搜索短語(yǔ)。
搜索結(jié)果是顯示推文內(nèi)容以及發(fā)布該推文的用戶(hù)的名稱(chēng)和圖像的項(xiàng)目列表。內(nèi)容中的標(biāo)簽,名稱(chēng)和鏈接是可單擊的。單擊圖像將翻轉(zhuǎn)該項(xiàng)目以顯示更多信息。
運(yùn)行示例
要從Qt Creator運(yùn)行示例,請(qǐng)打開(kāi)“welcome”模式,然后從“demo”中選擇demo。有關(guān)更多信息,請(qǐng)?jiān)L問(wèn)構(gòu)建和運(yùn)行示例。
Tweet Search使用Twitter API v1.1來(lái)運(yùn)行搜索。
請(qǐng)求認(rèn)證
每個(gè)請(qǐng)求都必須代表應(yīng)用程序進(jìn)行身份驗(yàn)證。出于演示目的,該應(yīng)用程序使用硬編碼令牌來(lái)向Twitter服務(wù)標(biāo)識(shí)自己。但是,此令牌受請(qǐng)求數(shù)量以及可能到期的速率限制。
如果您在運(yùn)行演示時(shí)遇到身份驗(yàn)證或速率限制問(wèn)題,請(qǐng)通過(guò)在//dev.twitter.com/apps上注冊(cè)一個(gè)新應(yīng)用程序來(lái)獲取一組特定于應(yīng)用程序的令牌(消費(fèi)者密鑰和消費(fèi)者密碼)。
在TweetsModel.qml中輸入兩個(gè)令牌值:
property string consumerKey : "" property string consumerSecret : ""
重建并運(yùn)行演示。
JSON解析
搜索結(jié)果以JSON(JavaScript對(duì)象表示法)格式返回。TweetsModel使用XMLHTTPRequest對(duì)象發(fā)送HTTP GET請(qǐng)求,并在返回的文本字符串上調(diào)用JSON.parse()以將其轉(zhuǎn)換為JavaScript對(duì)象。然后,將代表推文的每個(gè)對(duì)象添加到ListModel:
var req = new XMLHttpRequest; req.open("GET", "http://api.twitter.com/1.1/search/tweets.json?from=" + from + "&count=10&q=" + encodePhrase(phrase)); req.setRequestHeader("Authorization", "Bearer " + bearerToken); req.onload = function() { var objectArray = JSON.parse(req.responseText); if (objectArray.errors !== undefined) { console.log("Error fetching tweets: " + objectArray.errors[0].message) } else { for (var key in objectArray.statuses) { var jsonObject = objectArray.statuses[key]; tweets.append(jsonObject); } } wrapper.isLoaded() } req.send();
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: