網站 / LINE Notify 推播 補充說明

補充說明 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

 ?>