2012-10-16 45 views
0

我正在構建一個內部應用程序,它可以一次累積來自多個社交網絡的信息。可能地,應用程序的URL將不會被知道,或者它不會被允許在localhost以外的任何地方使用。Facebook OAuth離線登錄

我將積累的信息之一是FQL見解表信息:https://developers.facebook.com/docs/reference/fql/insights/。您可能會注意到,這些信息是私密的,所以我無法匿名獲取。

應用程序本身是以「配置一次,永久使用」的方式編寫的,可能使用該應用程序的人可能根本不會被允許使用Facebook登錄憑證。

我的問題是Facebook登錄。據我所知,使用「永久訪問」的登錄現在已被棄用,Facebook不允許以與Twitter相同的方式訪問API(創建永久持久密鑰並忘記它)。問題是:

  • 有沒有什麼辦法可以克服這樣的事實,即每次我想要獲取它們時都需要詢問該人的權限?詢問之間最長的時間是多少?

我一下目前的想法是:

  • 創建爲「經理」的虛擬用戶,並給了他只讀 訪問FB頁面,因此使他登錄帳戶。 然後,當我需要他們時,每隔(n)小時向他詢問權限。
  • 自動登錄到FB賬戶,因爲我們有賬戶的登錄名/密碼 並自己獲取API密鑰。

哪個可行?有沒有人有過這樣的經歷?

回答

2
What can be the longest period between asking? 

就可以使用長壽命的access_token用戶是有效60天。使用下面的FB調用來獲得更多的訪問令牌:

https://graph.facebook.com/oauth/access_token?client_id=APP_ID&client_secret=APP_SECRET&grant_type=fb_exchange_token&fb_exchange_token=EXISTING_ACCESS_TOKEN

你可以在這裏查看更多詳細信息:

https://developers.facebook.com/roadmap/offline-access-removal/

還有一點是值得大家注意他re: 當用戶更改密碼時,取消對他們的OAuth令牌過期的應用程序進行授權。

希望得到這個幫助!

+0

「我們的平臺每天只會延長一次到期時間,所以即使用戶每天多次修改您的網站,該令牌也會在首次請求時延長。」 據我所知,您以前使用過API。這實際上是否意味着我可以永遠延長令牌? 這是我以前的想法,但謝謝你的答案:)我想沒有其他辦法做到這一點。 –