2012-08-04 109 views
0

我妄圖張貼到Facebook粉絲頁面牆爲管理員。我想在我的粉絲頁面牆上發佈帶有圖片,鏈接,說明等的新條目。這被整合到我的自定義cms中,以便每當故事在我的網站上更新時,它會自動在粉絲頁面牆上發佈相同內容。 問題是,無論何時發佈,該帖子都不會顯示爲由管理員發佈。它顯示爲時間線右側的其他人的帖子。 如何繞過以下代碼,以便將其作爲管理員發佈在我的粉絲頁面牆上?我一直在看它兩天,在網上查了類似的東西,但我仍然無法破解它。幫助將不勝感激。不能發佈進入Facebook粉絲頁面牆作爲管理員

$page_id = 'xxxxxxxxxx'; 
$article_link = "http://xyz.com/articles/headlines/title-one/"; 

$result = $facebook->api("/me/accounts"); 
foreach($result["data"] as $page) { 
    if($page["id"] == $page_id) { 
     $page_access_token = $page["access_token"]; 
     break; 
    } 
} 

$og_title = "Sample title"; 
$og_image = "http://xyz.com/images/articles/919161344090182.jpg"; 
$msg = "some description of the article"; 
$feed_array = array(
    'access_token' => "$page_access_token", 
    'message' => "$msg", 
    'picture' => "$og_image", 
    'link' => "$article_link", 
    'name' => "$og_title", 
    'caption' => "$og_title" 
); 

try { 
    $page_post = $facebook->api("/$page_id/feed","post",$feed_array); 
} catch (FacebookApiException $e) { 
    error_log($e); 
    $user = null; 
} 
+0

你應該回去了從'$ facebook-例外> API()調用'對錯誤。他們投擲?如果是的話,他們的信息是什麼? – complex857 2012-08-04 14:48:16

+0

對不起,疏忽了。我會插入錯誤捕捉。我沒有得到任何錯誤。問題在於帖子未顯示爲由管理員發佈,而是由其他人發佈。我需要它作爲管理員發佈。 – nixxx 2012-08-04 14:54:41

+0

聽起來像是你的access_token是不是真的頁面訪問令牌(我看到的變量名),或誰被用於創建令牌的用戶是不允許張貼在網頁上。 [前幾天有更改](http://developers.facebook.com/blog/post/2012/07/23/new-marketing-tools-for-pages/),但我沒有知道它是否相關。 – complex857 2012-08-04 15:08:19

回答

0

如果你想崗位作爲的頁面 - 這意味着,文章將出現,如果該頁面發佈了一個更新as it appears here :

然後,你將不得不使用一個有效的頁面訪問令牌。有關於如何在Facebook Authentication Documentation中獲得這種令牌的信息。看起來您的代碼中已經有一個令牌 - 您可以使用Facebook Debugger進行測試,然後查看它是否仍然有效。

您可能想要嘗試的另一件事是,您可以使用PHP SDK的setAccessToken()函數,而不是將該令牌附加爲帖子數組的參數之一。更多詳細信息可以在這裏找到 - https://developers.facebook.com/docs/reference/php/facebook-setAccessToken/

$facebook->setAccessToken($new_access_token); 

作爲最後BTW注意,當您指定一個數組的元素,除非你是想專門加引號字符,沒有必要來包裝值在引號中。

$feed_array = array(
    'access_token' => $page_access_token, 
    'message' => $msg, 
    'picture' => $og_image, 
    ... 
); 

如果你想明確的報價增加值,你會做這樣的事情 -

$feed_array = array(
    'string_value' => '"'.$value.'"', 
    ... 
); 
+0

Thnx爲矯正傢伙。對不起,我的意思是我希望我的CMS作爲頁面發佈,而不是管理員。我檢查了頁面訪問令牌,發現它已過期,所以我從圖形api資源管理器http://developers.facebook.com/tools/explorer/生成了一個新的。即使使用這個新的令牌,更新仍然像以前一樣顯示(不是由頁面發佈)。是否還有其他東西缺失? – nixxx 2012-08-04 16:41:11

+0

使用正確的標記將會得到你想要的結果。你是如何獲得你使用的令牌的?你是否從管理員那裏獲得了「manage_pages」權限? – Lix 2012-08-04 16:43:19

+0

我碰到過這個。如果我刪除所有其他參數,並只留下消息參數,它帖子就好(作爲頁面)!但是,現在我介紹其他參數,它張貼不同(作爲普通用戶)!怎麼來的? – nixxx 2012-08-04 16:58:53

相關問題