iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 28
1
Modern Web

WordPress 遇上 Chatbot,像極了愛情系列 第 28

【第 28 天】在 WordPress 建立傳送 LINE Notify 函式

  • 分享至 

  • xImage
  •  

今天我們要來開始試著寫 LINE notify 這段。我們建立一個 private function 叫做 line_send_notify ,這個函式傳入了一參數叫做 $text

這個函式一開始我們先建立 $request_params ,裡面有我們的 headerbody。其中 header 包含了我們在 【第 27 天】取出 LINE Notify token ,所拿到的 token ,作為 Authorization 的 value。以及在 body 放入 一個 key 為 message ,value 為剛剛函式傳入的 $text

$request_params = array(
    "headers" => "Authorization: Bearer {$this->options['token']}",
    "body"    => array(
        "message" => "{$text}"
    )
);

還記得我們在 【第 15 天】WordPress 的 HTTP API ,了解了 WordPress 提供了許多好用的 HTTP API 讓我們可以對第三方發送 HTTP 請求,這時候就可以派出用場了

LINE 官方文件提到要推送 notify 的位址是 https://notify-api.line.me/api/notify ,並且是 POST 方法,然後要傳入剛剛建立好的 headerbody

$response = wp_remote_post('https://notify-api.line.me/api/notify', $request_params);

這樣我們的訊息應該就可以正常送出去了,完整的程式碼如下:

private function line_send_notify($text) {
        $request_params = array(
            "headers" => "Authorization: Bearer {$this->options['token']}",
            "body"    => array(
                "message" => "{$text}"
            )
        );

        $response = wp_remote_post('https://notify-api.line.me/api/notify', $request_params);
    }

順帶一提,如果想要確認一下我們 API 是否有打成功,我們還可以加入:

$response_code = wp_remote_retrieve_response_code($response);

然後用 if...else... 去判斷狀態碼:

if( $response_code == '200' ){
    // Do something...
} else {
    // Do something...
}

上一篇
【第 27 天】取出 LINE Notify token
下一篇
【第 29 天】在這些 WordPress Hooks 放在 LINE Notify
系列文
WordPress 遇上 Chatbot,像極了愛情30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言