2010-08-16 53 views
1

我想要設置一個coldfusion頁面,它將從我自己的Facebook帳戶和Twitter帳戶中提取狀態更新,並將它們與它們一起放入SQL數據庫時間戳。每當我運行這個頁面時,它應該只抓取它已經存在於數據庫中的最新時間戳之後的信息。通過Coldfusion將Facebook和Twitter狀態更新拉到SQL數據庫頁面

我希望這不會太壞,因爲我感興趣的只是狀態更新和時間戳。最終,我想拉圖像等其他東西,但對於第一次測試只是狀態更新是好的。有沒有人有示例代碼和/或指針,可以幫助我在這個努力?

如果有必要的話,如果有任何信息與當前版本的apis(twitter with oAuth和facebook open graph)相關,我想要它。我見過的一些解決方案涉及創建一個twitter應用程序和facebook應用程序來與API交互;如果我只想訪問我自己的帳戶信息的一部分,那麼這是否有必要?提前致謝!

回答

1

我會從數據庫中讀取max(insertDate),並且如果API允許您,則只會在該日期之後請求更新。然後插入這些更新。下一次運行時,你只需要獲得最後一堆更新的max(),然後再調用下一組。

您可以使用ColdFusion計劃任務每​​5分鐘運行一次。

您如何與API通信通常使用<cfhttp />。我經常做的一件事是記錄每個請求和響應,無論是在文本文件中,還是在數據庫中。這在解決問題時非常重要。

希望有所幫助。

+0

理念明智它確實有助於明確;儘管如此,我仍然在實施方面有點失落。當你說你可以使用cfhttp與API通信時,這是否意味着我不必通過創建和註冊Twitter應用程序和Facebook應用程序來使用API​​進行額外步驟?你能指點我的任何示例代碼嗎?謝謝! – KeithComito 2010-08-16 17:59:19

1

使用cffeed標籤從Twitter和Facebook中提取RSS提要。將最後一次饋送掃描的日期保留在某處(應用程序變量或數據庫)並循環顯示饋送條目。比上次掃描更舊的任何條目都會被忽略,其他所有內容都會被提交確保在try/catch中包含cffeed,因爲如果服務關閉,它會拋出錯誤(ahem,twitter)正如其他答案中所述,將其設置爲計劃任務。

<cffeed action="read" properties="feedMetadata" query="feedQuery" 
     source="http://search.twitter.com/search.atom?q=+from:mytwitteraccount" /> 
+0

有趣,所以你可以用飼料做到。我有幾個關於這個問題:1.多久以前你能得到這個2.對於twitter(因爲只有狀態更新)這似乎工作得很好,但與Facebook我可能需要更多的信息比只是一個RSS提要(以後)將圖像和內容複製到我的系統中......或者是指向用戶上傳圖像的鏈接,以及可以從提要中以某種方式訪問​​的鏈接?我基本上想做的是爲我自己的社交網絡創建一個自定義聚合器,並且能夠查看我所有的推特帖子,臉譜,上傳的YouTube視頻等。 – KeithComito 2010-08-16 18:08:49

+0

http://apiwiki.twitter.com/Twitter-Search-API-Method:-search Twitter RSS源支持一個「since」變量,用於定義您的查詢後退多遠。我假設Facebook API具有類似的功能。 – lazyconfabulator 2010-08-16 18:17:00

+0

好的;這很有用。關於第二點的任何想法?我會做一些挖掘facebook的RSS。再次感謝。 – KeithComito 2010-08-16 18:54:09

0

不同於您所建議的方法,但它對我們有效。我們有兩個現場活動,我們要求人們張貼到定製的Facebook粉絲頁面,或者向Twitter發送我們實時批准的活動標籤。然後,我們只是提取並解析了FB頁面的RSS提要,以及Twitter搜索結果,在短時間間隔內提取了新內容......我認爲這大約每三分鐘一次。 CFFEED有點容易出錯,而且靠不住的,只是做了RSS的CFHTTP GET飼料,然後處理CFHTTP.filecontent結構項目作爲XML工作的罰款

.LAG