2012-03-21 93 views
-1

我正在構建一個定期刮取用戶圖形API內容的rails應用程序。我的第一個方法是完全服務器端完成,使用Omniauth進行身份驗證,Koala在服務器上與Facebook進行交互。我不得不運行一個後臺進程來做到這一點。Facebook API:如何獲取access_token服務器端並將其用於客戶端?

但是我意識到它可能會變得非常昂貴,並且正在考慮在服務器端和客戶端進行選擇。我仍然需要做服務器端,因爲即使用戶不在站點上,我也需要填充內容,但至少當用戶在站點上時,更有意義的是執行所有輪詢客戶端。這樣,我的服務器不需要經常刮擦FB服務器,所以成本一直很低,而且用戶更高興,因爲他們可以隨時接收更新,並且可以隨時隨地獲得更新,使用FB javascript SDK

我是不知道這是否可能。目前我知道如何完全完成服務器端或完全客戶端。但我不知道如何從服務器端獲取access_token,並在客戶端使用這些信息,以便讓客戶端執行大部分輪詢。我會很感激你的建議。

回答

1

「我正在構建一個定期刮取用戶圖形API內容的rails應用程序。」不要只是這樣,它會太昂貴。爲用戶實現Graph API的實時更新並存儲信息。通過這種方式,當有事情發生變化時,您會立即得到通知,而且您也不必「浪費」對API進行的輪詢調用,該調用不會返回上次調用所做的任何新操作。然後,如果你想在你的客戶端寫一個輪詢器來輪詢用戶信息的服務器端數據存儲。

+0

感謝您的信息。我實際上花了幾個小時閱讀文件,這是我學到的新東西之一。但它仍然很棘手。由於昨天晚上我問這個問題,我設法實現了客戶端輪詢模塊,它似乎工作正常,但我不知道這是如何工作的:(我猜也許一旦用戶使用Omniauth進行身份驗證一次,它存儲在cookie中,我不必擔心客戶端身份驗證。 – Vlad 2012-03-21 13:29:17

+0

其實我非常感謝您的評論,但我仍然沒有得到我的答案。我不知道爲什麼這個問題是downvoted (也許這是一個新手問題?),但我仍然有這個問題,我現在如何解決這個問題,首先我使用考拉寶石來處理服務器端的抓取,但對於客戶端,我只是使用Facebook的js API,它使用當前登錄Facebook的用戶的Facebook會話,這意味着服務器端可能會抓取用戶A的內容,而客戶端可能正在爬取正在使用計算機的人。您是否知道是否有解決方案? – Vlad 2012-04-17 22:20:24

+0

As我在最初的回答中指出,刮刮並不是這樣做的方式。使用Graph API的實時更新機制來獲得即時更新。 – DMCS 2012-04-17 22:53:02

相關問題