2012-04-11 137 views
0

是否可以通過cronjob獲取用戶的有效訪問令牌? 我想創建一個應用程序,每晚解析用戶的所有帖子,並檢查是否有一些特殊的字符。Facebook - 通過Cronjob獲取用戶訪問令牌

與應用程序快捷鍵我只有從用戶的公共帖子的訪問。與用戶訪問令牌我也可以訪問私有帖子

但用戶訪問令牌過期

是有可能用cronjob刷新用戶令牌?這意味着的cronjob可能需要刷新100個用戶訪問令牌和我沒有用戶通過杜的cronjob打開授權對話框,因爲它的服務器上稱爲

我'使用PHP爲Facebook API

回答

1

沒有,這是不可能的,甚至說是明確的官方Removal of offline_access Permission後:

你能得到一個 有效的「授權碼」,能夠使服務器 - 之前,用戶必須訪問應用程序方OAuth 再次調用。應用程序將無法設置背景/ cron作業 試圖自動延長到期時間,因爲 「授權碼」是短暫的並且已過期。

隨着中說,當你從Server-Side authentication流的訪問令牌,你得到的令牌應該持續一個月,如果你堅持它,那麼你可以使用它爲一個月。

在那個月結束後,如果用戶沒有重新啓用您的應用,那麼訪問令牌將過期,您必須傳遞該用戶。

+0

感謝其幫助許多。你知道我必須做些什麼才能獲得有效期爲一個月的訪問令牌嗎?我只需要使用服務器端身份驗證,還是必須照顧別的東西? – alphanyx 2012-04-11 08:49:11

+0

正如我在回答中給你的鏈接所說:*「如果access_token是從服務器端OAuth調用生成的,那麼生成的access_token將具有更長的到期時間」*,所以這就夠了,你也可以使用客戶端身份驗證,然後使用該鏈接中討論的新端點,以擴展訪問令牌。在我看來,使用服務器端流量更容易。 – 2012-04-11 09:00:50

1

如果你使用Facebook的jdk您可以使用:$token = $facebook->getAccessToken(); 然後,保存$token到數據庫供的cronjob

$args = array(
       'access_token' => $page_info['access_token'], //Offline Access Token From Database 
       'message'  => $_POST['description'], 
       'link'   =>$_POST['link'], 
       'picture'  =>$_POST['image'], 
       'name'   =>$_POST['title'] 
       ); 
    $post_id = $facebook->api("/$page_id/feed","post",$args); 

$page_id是粉絲專頁上的ID或

$post_id = $facebook->api("/me/feed","post",$args); 
相關問題