天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

微博是個(gè)大金礦,使用VS2010編譯QOAuth支持微博通用認(rèn)證OAuth實(shí)現(xiàn)SINA微博登陸

  隨著Twitter的興起和國(guó)內(nèi)Sina和QQ等公司的追隨,微博現(xiàn)在是如日中天,將傳統(tǒng)的SNS給完全比拼下去,微博對(duì)于大家來(lái)說(shuō)完全是個(gè)尚未完全開采的大金礦,對(duì)于一直站在潮流最前端的程序員來(lái)說(shuō)怎么能將這么好的機(jī)會(huì)錯(cuò)失呢。

  在這里我拋磚引玉,先介紹下如何在Qt平臺(tái)上編譯QAuth來(lái)支持現(xiàn)在微博的通用認(rèn)證OAuth,

  根據(jù)Twitter的API Wiki,基本的OAuth驗(yàn)證workflow如下:

  1. 程序利用http://api.twitter.com/oauth/request_token來(lái)從twitter.com那里獲取一個(gè)request token。

  2. 然后程序引導(dǎo)用戶到http://api.twitter.com/oauth/authorize頁(yè)面。

  3. 用戶如果同意授權(quán),twitter.com則會(huì)顯示一個(gè)7位數(shù)字的PIN碼。

  4. 用戶需要將PIN碼復(fù)制,然后回到程序那里。

    5. 之后程序要提示用戶輸入得到的PIN碼。

    6. 然后程序?qū)IN碼作為參數(shù)oauth_verifier的值,接著調(diào)用http://api.twitter.com/oauth/access_token去核實(shí)PIN碼,從而將request_token 換成access_token。

  7. Twitter之后會(huì)返回一個(gè)access_token,程序就此token來(lái)生成之后的OAuth簽名。

  OAuth本身不是很復(fù)雜,不過(guò)如果有個(gè)庫(kù)可以作為驗(yàn)證的helper的話,就可以省事很多了,由于最近一直在用Qt做開發(fā),在上篇文章中我介紹了Qt并介紹了如何在VS2010中編譯Qt環(huán)境,如果對(duì)Qt不熟悉的朋友可以點(diǎn)這里查看。順理成章的是我希望在Qt框架下找到一個(gè)能支持OAuth的類庫(kù)來(lái)簡(jiǎn)化開發(fā),通過(guò)放狗進(jìn)行搜索,搜到有個(gè)QOAuth的東西,是在Qt下的OAuth庫(kù),不過(guò)仔細(xì)一看,原來(lái)在使用QOauth之前還需要OpenssL,QCA和QCA的OpenssL插件,暈啊!

  閑話就不說(shuō)了,咱們進(jìn)入正題

  • openssL

  首先得到OpenssL的官網(wǎng)上下載OpenssL,http://www.openssl.org/,我下載的是openssl-1.0.0c.tar.gz,也是最新的,如果大家不想編譯也可以到網(wǎng)上搜索別人編譯好的庫(kù)。

  下載好后解壓縮到硬盤中,我的路徑是 H:/openssl-1.0.0c,由于OpenssL使用Perl生成makefile,所以需要先下載Perl,我下載的ActivePerl,下載好后進(jìn)行安裝。

  Perl安裝好后,運(yùn)行Visual Studio Command Prompt (2010),不要運(yùn)行普通的控制臺(tái)。

  鍵入命令 perl Configure VC-WIN32

image

  如果輸入錯(cuò)誤會(huì)有明顯提示,需要注意的是VC-W32必須是大寫

  等完成后鍵入命令 ms/do_ms

image

  等完成后輸入 nmake -f ms/ntdll.mak

image

  編譯成功后生成的lib,dll等庫(kù)文件在out32dll中,頭文件在include中,這些目錄在以后的編譯中需要加入到項(xiàng)目頭文件目錄和lib包含目錄中。

  • 編譯支持OpenssL的Qt

  由于默認(rèn)情況下Qt編譯出來(lái)時(shí)不支持OpenssL的,需要重新編譯下Qt,囧。

  基本步驟和我這篇文章 Qt簡(jiǎn)介以及如何配置Qt使用VS2010進(jìn)行開發(fā) 中所描述的基本一致,唯一不同的在于configure的時(shí)候需要加上-openssl -I openssL頭文件目錄 -L openssLlib文件目錄,如我的環(huán)境下是這樣子滴

configure -platform win32-msvc2010 -openssl -I H:/openssl-1.0.0c/include -L H:/openssl-1.0.0c/out32dll

  • QCA

  QCA需要到這個(gè)網(wǎng)站http://delta.affinix.com/qca/下載,同樣的這個(gè)網(wǎng)站提供的QCA的OpenssL插件下載

  QCA我下載的 qca-2.0.3.tar.bz2

  QCA的OpenssL插件我下載的是 qca-ossl-2.0.0-beta3.tar.bz2

  下載好后解壓縮到硬盤,我的路徑是 H:/qca-2.0.3,打開系統(tǒng)的環(huán)境變量,將QTDIR加入系統(tǒng)環(huán)境變量,如圖所示

image

  打開VS2010,Qt菜單(如果沒(méi)有這個(gè)菜單,請(qǐng)查看我的上一篇文章),Open Qt Project File(.pro),選擇QCA的安裝目錄下的qca.pro,稍等一會(huì)兒,自動(dòng)將PRO項(xiàng)目轉(zhuǎn)換成VS2010項(xiàng)目并加載了QCA下的所有項(xiàng)目

image

  工程下有很多項(xiàng)目,我們只要編譯qca項(xiàng)目即可,直接編譯會(huì)出錯(cuò),需要進(jìn)行下設(shè)置,展開qca項(xiàng)目,在Generated Files下的debug和release目錄下找到qpipe.moc文件,右鍵屬性,顯示下圖界面

image

  在Command Line的最后面加上-DQ_OS_WIN,確定后,再編譯,OK一切都安靜了

  • QCA的Openssl插件

  下載好后解壓縮到硬盤,在Visual Studio Command Prompt (2010)中進(jìn)入壓縮目錄,我的是在H:/qca-ossl-2.0.0-beta3,執(zhí)行下面命令: configwin rd

image

  新建一個(gè)文本文件,輸入WINLOCAL_PREFIX = C:/local,C:/Local可以是任何你想指定的目錄,這個(gè)目錄是作為零時(shí)文件的存放路徑,將其保存到你的Qt目錄下的mkspecs/features目錄中,文件名為winlocal.prf,注意不要保存成文本文件,我的保存路徑是H:/Qt/2010.05/qt/mkspecs/features,供大家參考。

image

  打開VS2010,Qt菜單(如果沒(méi)有這個(gè)菜單,請(qǐng)查看我的上一篇文章),Open Qt Project File(.pro),選擇QCA的OpenSSL插件的的安裝目錄下的qca-ossl.pro,稍等一會(huì)兒生成了QCA的OpenSSL插件的VS項(xiàng)目。

  將OpenssL的頭文件路徑和lib文件路徑添加到項(xiàng)目中

  在項(xiàng)目中搜索所有的EVP_md2,一共有4個(gè),加上宏定義#ifndef OPENSSL_NO_MD2#endif,如圖示,

image

  編譯之,在lib文件夾中獲取勞動(dòng)成果dll和lib文件兩顆,拷貝進(jìn)Qt的Plugins的crypto中,如果沒(méi)有這個(gè)目錄,手動(dòng)建立目錄。在以后編譯的項(xiàng)目中需要將這個(gè)目錄拷貝到exe文件的目錄中即可。

  • QOAuth

  從QOAuth的官方網(wǎng)站https://github.com/ayoy/qoauth下載QOAuth,

  在硬盤解壓縮,我的目錄是H:/ayoy-qoauth-18dbc19,通用的打開VS2010,Qt菜單(如果沒(méi)有這個(gè)菜單,請(qǐng)查看我的上一篇文章),Open Qt Project File(.pro),選擇QOAuth目錄下的qoauth.pro,稍等片刻生成項(xiàng)目文件,在qoauth項(xiàng)目中的interface.h文件中點(diǎn)擊右鍵,屬性,如下圖所示

image

  將./GeneratedFiles/$(ConfigurationName)/加入到include目錄中,

image

  編譯qoauth項(xiàng)目,成功后在lib文件中找到dll和lib,

  編譯好之后得安裝。具體做法是: 將oauth.prf復(fù)制到QTDIR/mkspecs/features里面, 將include和src復(fù)制到QTDIR/include里面,src里面只需有頭文件即可 將生成的dll復(fù)制到QTDIR/lib,如果編譯時(shí)候提示找不到這兩個(gè)dll,可能是因?yàn)檫@是的dll名字包含版本號(hào),去掉就ok了。

  用了QOAuth之后,編譯出來(lái)的程序需要 +OpenSSL的鏈接庫(kù):(如果不帶上OpenSSL的話,程序仍然可以啟動(dòng),QCA會(huì)顯示插件不支持的,然后會(huì)中止程序,算是個(gè)小陷阱) -libeay32.dll,libssl32.dll,ssleay32.dll +QCA的鏈接庫(kù): -qcad2.dll +QOAuth的鏈接庫(kù) -qoauth1.dll/qoauthd1.dll。

NET技術(shù)微博是個(gè)大金礦,使用VS2010編譯QOAuth支持微博通用認(rèn)證OAuth實(shí)現(xiàn)SINA微博登陸,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产精品人妻无码99999 | 老师机影院 | 国产成人在线小视频 | 国产360激情盗摄全集 | 97碰成视频免费 | 成人欧美一区二区三区白人 | 国内高清在线观看视频 | 国产 有码 无码 电影 | 99视频这里只有精品国产 | 伊人精品影院一本到综合 | 久久午夜夜伦痒痒想咳嗽P 久久午夜夜伦鲁鲁片无码免费 | 国产在线精品一区二区网站免费 | 欧美多人群p刺激交换电影 欧美多毛的大隂道 | 永久免费的污视频网站 | 德国美女密密麻麻浓毛 | 午夜理论片YY4399影院 | 日韩午夜欧美精品一二三四区 | 恋夜影院安卓免费列表uc | 妈妈的朋友5在线观看免费完整版中文 | 美女张开腿让我了一夜 | 亚洲 日韩 在线 国产 视频 | 国产亚洲精品久久久久久入口 | 国产日韩成人内射视频 | 日本十八禁无遮拦啪啪漫画 | 热久久综合这里只有精品电影 | 老师你狠狂 | 国产永久免费高清在线观看 | 蜜桃色欲AV久久无码精品 | 啦啦啦影院视频在线看高清... | 男欢女爱免费视频 | 成人在线高清不卡免费视频 | 亚洲色无码播放 | 狠狠色狠狠色综合日日32 | 中文日产无乱码AV在线观 | 大地影院免费观看视频 | 阿片在线播放 | 处女座历史名人 | 国产人妻精品午夜福利免费不卡 | 日本九九热在线观看官网 | 久久日韩精品无码一区 | 亚洲视频成人 |