2012-03-09 150 views
3

有沒有辦法將Facebook內容(特別是從公共頁面發佈的牆貼)顯示在沒有Facebook需要用戶登錄的網站上?在不建議使用offline_access權限之前,我只需創建一個令牌作爲自己,存儲它並根據需要提取信息。向非Facebook用戶顯示Facebook帖子

現在,從我所知道的情況來看,我唯一的兩個選擇是1)每60天手動更新一次該令牌,或2)僅將內容顯示給Facebook用戶,並讓他們「允許」該應用。顯然#1不是首選,#2似乎不是很好的做法。

僅供參考,我只是試圖拉從公開訪問的頁面牆內容,並要求代表用戶(沒有牆張貼,不讀數據流等)採取任何行動。

這似乎是一個很簡單的概念,我覺得我必須失去了一些東西。我無法在任何地方找到答案。這些是我唯一的選擇嗎?任何反饋將非常感激。

更新時間:

我想我可能已經找到解決的辦法。在不建議使用offline_access的情況下,可以使用fb_exchange_token選項來延長現有令牌的到期時間。撥打以下電話:

https://graph.facebook.com/oauth/access_token?client_id={app_id}&client_secret= 
{app_secret}&grant_type=fb_exchange_token&fb_exchange_token={existing_token} 

您應該收到帶有延長過期的令牌。在我的場景中,我將允許應用程序通過我自己的Facebook帳戶,將令牌存儲在我的PHP代碼中,並使用cURL定期更新現有代碼。

注:根據Facebook的文件,過期只能每天一次

+0

_在取消offline_access權限之前,我會簡單地創建一個標記作爲我自己,存儲它並根據需要提取信息。然後,如果出於安全原因更改密碼或會話更改,則需要獲得另一個訪問權限令牌再次&我不確定這是可能的棄用離線訪問後(我認爲它可以再次使用) – 2012-03-10 06:51:24

+0

@korysharp這個工作適合你嗎?我正在嘗試做同樣的事情。你有沒有一個你如何完成這個的例子? – MicFin 2014-08-23 03:46:26

+1

@MicFin我目前使用https://graph.facebook.com/{page_url}/feed?access_token={app_token}其中PAGE_URL是網頁的網址(例如:可口可樂)和app_token表示應用程序訪問令牌。請參閱http://stackoverflow.com/questions/12948809/trying-to-get-app-access-token獲取獲取其中之一的說明。我已經能夠存儲和使用這個單一的令牌(沒有到期)爲我們所有的網站。希望這可以幫助。 – 2014-08-26 16:14:13

回答

0

擴展假設你自己的頁面,您可以使用manage_pages許可。 manage_pages權限是我可以收集的永久性令牌。然後使用/ feed圖形api和相關頁碼來獲取信息。

我假設你擁有這個頁面。如果你沒有或沒有明確給予許可,那麼你沒有權利將這些信息拉下來。

+1

除非我不正確地做某件事,事實並非如此。我剛剛獲得了具有read_stream和manage_pages權限的令牌。該令牌在4238秒內過期(超過一個小時)。我知道您擁有的每個頁面都有單獨的令牌,您可以通過打開的圖表api @/me/accounts訪問,但這些頁面令牌與用於獲取這些密鑰的令牌同時過期。 – 2012-03-09 15:03:24

+0

如果獲得publish_stream權限,那麼情況如何?我已經在我的應用中使用過,並且我知道它不會過期。或者我已經有至少幾個月了,它還在繼續。 – 2012-03-09 15:18:30

+1

有用於存在不再存在的offline_access權限。我有一些網站使用我通過offline_access獲得的令牌(仍然有效),但這不再是一種選擇。 – 2012-03-09 15:21:35