2012-02-20 98 views
0

我試圖自動發佈(在PHP中)Facebook頁面,如Facebook頁面。我在獲取未到期的令牌方面遇到問題,然後作爲頁面發佈。看來我可以作爲用戶發佈非到期令牌,但不能以頁面形式發佈。由於文檔在示例中留下了很多不足之處,有人可以概述實現此目的的步驟嗎?我創建了一個應用程序,並授予用戶的manage_pages,publish_stream和offline_access權限。當我嘗試發佈到網頁(沒問題)時,它會以用戶身份發帖,而不是頁面。我正在努力處理這個概念,即爲用戶提供未到期的訪問令牌,併爲該頁面提供未到期的令牌。以頁面形式發佈到PAGE

代碼授予權限:

<? 
require_once 'facebook.php'; 
$app_id = "APP_ID"; 
$app_secret = "APP_SECRET"; 

$facebook = new Facebook(array(
'appId' => $app_id, 
'secret' => $app_secret, 
'cookie' => true 
)); 

if(is_null($facebook->getUser())) 
{ 
header("Location:{$facebook->getLoginUrl(array('req_perms' => 'user_status,publish_stream,user_photos,manage_pages,offline_access'))}"); 
exit; 
} 
?> 

和代碼,以使後:

<? 
require_once 'facebook.php'; 

$app_id = "APP_ID"; 
$app_secret = "APP_SECRET"; 
$page_id = "PAGE_ID"; 
$page_access_token = "PAGE_TOKEN"; 
$facebook = new Facebook(array(
'appId' => $app_id, 
'secret' => $app_secret, 
'cookie' => true 
)); 

if(!empty($page_access_token)) { 
    $args = array(
     'access_token' => $page_access_token, 
     'message'  => "Test post" 
    ); 
    $post_id = $facebook->api("/$page_id/feed","post",$args); 
} else { 
} 
header("Location: http://example.com/") 

?> 
+1

可能重複[Facebook的網頁(/我/帳戶)access_token過期?](http://facebook.stackoverflow.com/questions/9235695/facebook-pages-me-accounts-access-token-expiration) – DMCS 2012-02-21 20:05:12

回答

1

你知道嗎,offline_access已經過時?

+0

我沒有看到...謝謝。所以,我想自動進入一個頁面作爲一個頁面,每次必須得到一個新的令牌(或交換令牌)?任何樣品? – 2012-02-21 01:29:47

0

剛剛創建了一個全新的應用程序。確保棄用離線訪問已啓用。到了資源管理器,發現我的新應用程序在下拉列表中,授予我自己manage_pages,去me/accounts抓取了頁面訪問令牌之一,然後弄了一下它。破壞者,1小時到期,所以這並不好。所以我嘗試交換那1小時的頁面令牌,我從Facebook得到一個錯誤。

我回到了用戶訪問令牌,並交換了60天。在linter驗證過,這是一個60天。回到me/accounts並抓取頁面訪問令牌之一併將其刪除。驚喜!從那裏得到了60天的代幣。

故事的道理是,你不能交換頁面令牌,只能交換用戶令牌。但有了60天的用戶令牌,您可以獲得60天的頁面令牌。 :)