Tagphp

讓使用者免登入直接透過 Facebook API 發佈訊息到粉絲頁上

我是參考了這篇的做法,不用透過 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,還蠻好用的!

與 PHP dev 相關的 php.ini 設定

PHP shot tag

想要把原本 的寫法換成偷懶的方式使用 必需在 php.ini 做下面設定:

short_open_tag = On

PHP 錯誤訊息顯示

一般來說有下面幾種方法:

  • 直接印在網頁上
    當 php.ini 裡的 display_errors = on 時若 php 的程式有問題即會把錯誤訊息顯示在瀏覽器上,這對開發人員非常方便,但當網站對外開放時,一般都會把這個功能關閉,因為php若遇嚴重錯誤時不管你有沒有開啟這個功能它都會顯示錯誤訊息在瀏覽器上通常正式上線的 php 網站都會將這個功能關閉。
display_errors = on (若有錯誤會顯示在瀏覽器上)
display_errors = off (關閉錯誤提示訊息)
  • 透過 terminal 直接將預設位置的 error log 印出來
cat /var/log/apache2/error_log
  • PHP Console Chrome plugin
    這篇 php console 有詳細說明

© 2018 業餘人生日記

maintain by Chris ChenUp ↑