我是參考了這篇的做法,不用透過 PHP SDK 就可以做到這件事,以下為過程的幾個步驟:

  1. 拿到授權與 page token:到 Graph API Explorer 裡選擇你要使用的 app,然後點選 get access token 按鈕,接著點 “Extended Permissions” 並把 manage_pages 選項勾選起來,送出後就會到一組暫時性的 token (about 1hr)
  2. 將這組 token 用在下面的 php script(前提是 server 要支援 curl)

開頭先把 token 和要發到哪個 page id 設定好

<?php
$page_access_token = 'XXXXXXX';
$page_id = 'YYYYYYYY';

接著是要發的東西,可參考 API Doc

$data['picture'] = "http://www.example.com/image.jpg";
$data['link'] = "http://www.example.com/";
$data['message'] = "Your message";
$data['caption'] = "Caption";
$data['description'] = "Description";

接著將一開始的設定包成 array

$data['access_token'] = $page_access_token;
$post_url = 'https://graph.facebook.com/'.$page_id.'/feed';

最後一個步驟,用 curl post 訊息到塗鴉牆上

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $post_url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$return = curl_exec($ch);
curl_close($ch);
?>

至於 token 過期的問題,有網友提到一個解法,但我沒試成功,後來是我自己發現,只要把 app 設定成 clint 端的原生形式,拿到的 token 就會變成長期囉(兩個月)

後來我也發現原來 FB 也有 有Access Token Debugger,還蠻好用的!