https://developers.line.biz/en/docs/messaging-api/getting-started/
重要提醒! 一定要驗證你的email,LINE機器人才能正常工作。
先建立channel
選Messaging API
輸入你的機器人的設定,來建立你的LINE機器人。包含它的大頭照(App icon),機器人的名字(App name)。
這裡我們選Developer Trial,為了多一個PUSH MESSAGES的功能,可以主動發訊息給別人,需不是只能Reply(回應訊息)。Category及Subcategory選擇你的分類。Email是有其它事的話,可以連絡到你。
完成剛才的建立APP後,再進入你的APP繼續設定。
把下列4個地方設定好:
第一個Channel access token (long-lived),小時數預設0就好,表示這個Token沒有時間限制。
第二個Use webhooks,把它設定成Enabled。如果等下自己的PHP程式出錯,Use webhooks會自動調成Disable,你就要再回來改成Enable。
第三個Webhook URL,把你的Webhook server網址設定進去,如果你是第一次接觸Webhook,可參考Facebook Messenger API使用方法,裡面有對Webhook作解釋。但在設定這一項之前,你可能需要先建好你的Webhook程式網頁,不然它會回應失敗,這在下一段會講。
第四個Auto-reply messages,把它Disable掉,使用者才不會收到預設回應訊息。
建立下列PHP程式網頁,放在你的Server上,我喜歡設定檔名為webhook.php,存取網址要如同你上面設定的一樣。"
$_CONFIG['token'] = '
$logName = 'webhook.txt';
$raw = file_get_contents('php://input');
$data = json_decode($raw, true);
rewrite($logName, "\n\n");
rewrite($logName, "\n".$_SERVER['REQUEST_URI']);
rewrite($logName, "\n".$raw);
receiveMsg($data['events'][0]);
function receiveMsg($messaging)
{
global $logName;
$result = array();
$result = sendText($messaging['replyToken']
, 'Text received, echo: '.$messaging['message']['text']);
rewrite($logName, "\n".$result[0].' : '.$result[1]);
}
function sendText($receive,$text){
global $logName;
$url = 'https://api.line.me/v2/bot/message/reply';
$data['replyToken'] = $receive;
$data['messages'] = array(array( 'type' => 'text', 'text' => $text) );
$json = json_encode($data);
rewrite($logName, "\n".$json);
//rewrite($logName, "\n".'before http_post_data: '.$json);
$result = http_post_data($url, $json);
return $result;
}
function http_post_data($url, $data_string) {
global $_CONFIG;
//$token = $_CONFIG['token'];
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json; charset=utf-8' ,
'Authorization: Bearer {'.$_CONFIG['token'].'}' ,
'Content-Length: ' . strlen($data_string))
);
ob_start();
curl_exec($ch);
$return_content = ob_get_contents();
ob_end_clean();
$return_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
return array($return_code, $return_content);
}
function rewrite($filename, $data)
{
$filenum=fopen($filename,'a');
fwrite($filenum,$data);
fclose($filenum);
}
從剛才設定畫面的最下面,找到QRcode,用你自己的手機的LINE加入好友,就可以開始測試。
對話結果就如同下面
沒有留言:
張貼留言