補充說明 LINE Notify 推播的資料傳遞
程式碼是在add_action的 transition_post_status呼叫的publishOne( )跟updated( )內
藉由陣列$initData[ ]儲存傳遞的內容:message、stickerPackageId、stickerId
再透過curl_setopt_array( )傳遞
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
$initData['message'] = $name."剛剛發佈".$titleOne."→".$posrUrl; //$initData['imageThumbnail'] = 'https://i2.kknews.cc/SIG=1hsq8os/ctp-vzntr/r3sn77r39o364q46nps4n57pop734q35.jpg'; //$initData['imageFullsize'] = 'https://i2.kknews.cc/SIG=1hsq8os/ctp-vzntr/r3sn77r39o364q46nps4n57pop734q35.jpg'; $initData['stickerPackageId'] = '1'; $initData['stickerId'] = '114'; $token = '*******************************************'; $url = 'https://notify-api.line.me/api/notify'; $ch = curl_init(); $header[] = 'Authorization: Bearer'; $header[] = $token; curl_setopt_array($ch, array( CURLOPT_URL => $url, CURLOPT_POST => TRUE, CURLOPT_RETURNTRANSFER => TRUE, CURLOPT_SSL_VERIFYHOST => 0, CURLOPT_SSL_VERIFYPEER => 0, CURLOPT_HTTPHEADER => array(implode(' ',$header)), CURLOPT_POSTFIELDS => http_build_query($initData), ) ); $result = curl_exec($ch); curl_close($ch); |
cURL:全名 CommandLine URL,從字面上的意思就可以知道是在 Command Line 的環境下,透過 HTTP 協定及利用 URL 規則進行資訊傳遞的工具。
curl_setopt_array ( resource $ch , array $options ),以陣列的形式為一個cURL設置參數
$ch,由 curl_init() 回傳的 cURL 控制代碼
$options,指定要設置的選項及其值的陣列,鍵值應為有效的curl_setopt()常數或其等效的整數。
常用的$options
CURLOPT_URL => $url, //網址
CURLOPT_POST => true, //開啟POST
CURLOPT_POSTFIELDS => http_build_query($params), //傳遞POST參數的陣列
CURLOPT_FOLLOWLOCATION => true, //是否要抓取轉址
CURLOPT_RETURNTRANSFER => true, //只傳回結果,不輸出在畫面上
CURLOPT_HEADER => true, //顯示HEADER資訊
CURLOPT_USERAGENT => “Google Bot”, //設定AGENT
CURLOPT_FILE => fopen(“file”,”w”), //設定檔案(將結果輸入到檔案之中)
CURLOPT_NOBODY => true, //不要顯示目的端資料
curl_init(),創建一個新的cURL
curl_exec(),執行cURL
curl_close(),關閉cURL
在 array $options 中的CURLOPT_HTTPHEADER,是用來設定 HTTP headers的陣列
而前面的$header[] = ‘Authorization: Bearer’ 跟 $header[] = $token 便是透過implode( )來串接,外面再用array()包住存成陣列形式
測試:
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php $arr[] = 'Hello World!' ; $arr[] = 'Beautiful Day!'; $implode_arr=implode(" ",$arr); echo gettype($implode_arr);//string echo "\n"; echo gettype(array($implode_arr));//array ?> |