2013-03-29 56 views
8

我有一個應用程序刷新Facebook應用程序的信息在某個時間,讓我們說每天一次,並將它們寫入數據庫。 應用程序嘗試從中獲取信息的某些頁面受Age限制,情況變得複雜。在年齡限制Facebook粉絲頁面上獲取信息與cron工作粉絲頁面

到目前爲止,我發現一種方法是使用用戶access_token獲取頁面的信息。

例:https://graph.facebook.com/BrandCigarettes?access_token= {} user_access_token

但是,這是不可能的,因爲應用程序應該運行本身每天一次和令牌是有時間限制(默認兩小時)和離線訪問令牌不再可用。

有沒有辦法做到這一點?

+0

您可以將短期標記延長至60天,https://developers.facebook.com/roadmap/offline-access-removal/ – CBroe

回答

1

正常令牌通常在兩個小時後過期,但使用那個短的活動令牌,您可以請求新的長期令牌,該令牌的持續時間將爲60天。

當你得到那個之後,你只需要在你的數據庫中保存user_id和相應的擴展標記,所以如果你只是想獲得一些頁面的一些信息,你不需要爲你的應用程序的每個用戶,你只需要自己去做,就可以在你的應用程序中創建一個私人區域,每隔59天去更新一次令牌。

要更換你的短期訪問令牌很長一個只是做一個請求到圖形API

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 

在這個問題上接受的答案解釋如何做到這一點,而無需使用C#的Facebook SDK

Feed Offline Access

由於CBroe評論,我也建議你閱讀Facebook的文檔有關擴展標記

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

+0

感謝您的回答。 但問題仍然存在,我需要應用程序爲自己工作。 這種方式如果我更改我的帳戶的權限,更改密碼或60天后,我將需要提供新的訪問令牌。 – Pece

+1

很抱歉給你壞消息,但這是唯一的方法。對於圖表api的每個請求,您都需要一個有效的訪問令牌,並且60天是令牌所能存在的最大值。如果問題是由於帳戶密碼或權限的緣故,爲什麼不爲此目的創建一個「假」帳戶jut? –

+0

是的,我想到了這一點,這是一些解決方案,但它仍然需要在60天內提供新的訪問令牌。 我試圖避免的東西。 – Pece