基於PECL OAuth打造微博應用

2021-06-16 05:20:32 字數 1143 閱讀 6939

最近,國內主要門戶**相繼開放了微博平台,對開發者而言這無疑是個利好訊息,不過在實際使用中卻發現平台質量良莠不齊,有很多不完善的地方,就拿php版sdk來說吧,多半都是用twitteroauth 改的,一旦多平台整合,很容易出現命名衝突之類的問題。

既然官方sdk不給力,那我們只能發揚自力更生的革命精神了!好訊息是php本身已經有了乙個標準的oauth實現:pecl oauth !下面以此為例來講解一下如何實現微博應用:

下面開始!假定我們要開發乙個類似follow5 和微博通 的應用,簡單點說就是把訊息同時傳送到多個微博平台,出於安全性的考慮,不會使用http basic,而會使用oauth,這就需要我們先拿到access token和access token secret。

注意:引數nonce和callback的設定,詳見:使用 pecl 的 oauth 庫訪問 qq 微博 api 。

下面繼續做我們的微博應用,發訊息一般都是文字形式的,不過有中國特色的微博開放平台支援文字加的方式:上傳到伺服器,但本身並不參與簽名。這和標準oauth是衝突的,所以要擴充套件一下pecl oauth,並且盡可能相容原類的使用方法和習慣:

注意:為了讓**潮一點,用了一些php5.3以上版本才有的特性,你可以改寫成低版本。

如果使用curl方式傳送請求的話,最好傳送乙個空的expect頭,否則如果post資料大於1k,curl會自作主張傳送 expect:100-continue頭,對多數web伺服器來說這沒問題,但低版本lighttpd(如1.4)則會出現http 417錯誤。

詳見:『expect』 header gives http error 417

如果使用php streams方式傳送請求的話,預設使用的是http1.0版本,可以通過tcpdump命令來檢測這種現象,大致方法如下:

shell> tcpdump -a host foo.com
此時,某些防火牆會過濾掉非標準http1.0的請求頭,如host請求頭,從而造成錯誤。

詳見:由於 http request 不規範導致的被防火牆攔截 。

新類microblogoauth直接擴充套件自pecl的oauth類!隨著php核心api的逐漸類化,這樣的擴充套件方式將會越來越常見,值得開發人員重視。

為了讓呼叫方式更統一,使用工廠方法包裝microblogoauth的例項化過程:

如何通過微博打造個人品牌

咱們常常講微博營銷,首先還得自己的微博玩得好。微博引發了自 時代的到來,每乙個人都可以通過微博發出自己的聲音,當然,也可以打造自己的個人品牌。名人 明星我們在這裡就不說了,就談談草根個人微博要怎麼玩,怎麼打造個人品牌。1 個人定位,定www.cppcns.com位和目的是開始微博就要想好的www.c...

疫情下微博使用者情感分析 基於機器學習的微博情感分析

一 資料獲取 二 資料匯入與探索 全文運用python作為資料處理 的工具。首先利用pandas庫匯入資料並觀察一下前五行資料來看一下資料的大致情況 import pandas as pddata pd.read csv r c users zhousiying desktop weibo sent...

基於SimHash的微博去重

基於simhash的微博去重 呂新建 一 需求 對微博資料進行去重,資料量比較小,幾十萬條左右。二 解決方案 1 採用simhash的指紋資訊去重方法。三 實現方案 1 對每一條微博使用tf idf與特徵詞 2 使用每條微博的特徵詞,通過simhash方法生成資訊指紋。四 具體細節 1 simhas...