จำนวนการเปิดอ่าน 95
คะแนนเอกสาร

เกริ่นก่อน

เกริ่นก่อน อย่างนึง ตอนแรกได้ request มาให้ทำระบบแจ้งเตือนไปที่ Line ไอ้เราก็นึกว่าต้องทำ Line Messager API นู่น แต่พอไปหาๆ ดูปรากฏว่า มันดันมีไอ้ที่ง่ายกว่านั้น แถมยังฟรีด้วย (งงมาก ทำไมมันฟรี ท่าทางตอนหลังมันต้องคิดตังแหง)

ไอ้สิ่งนั้นมันก็คือ Line Notify ซึ่งจะต่างจากพวก Line Messager คือ เราไม่ต้องสร้างบัญชี และเวลาส่งแจ้งเตือน มันจะเตือนไปที่บัญชี Line Notify แทน แบบนี้

ดังนั้นอย่างแรก ผู้รับต้อง add friend Line Notify ไว้ด้วย (แต่ความจริง ไม่ต้อง add พอเตือนมันก็เด้งขึ้นมาอยู่ดี ลองแล้ว)

ขั้นแรก

ผู้ที่ต้องการรับ Notify ไปขอ Access Token ก่อน ที่ https://notify-bot.line.me/my/ ซึ่งต้อง login ด้วยบัญชี Line ที่ต้องการรับ Notify นั่นล่ะ

จากนั้นไปกดปุ่มออก Token 

ไอ้ตรงนี้ เปิดในมือถือ ไม่เห็นนะครับ ไม่รู้เพราะอะไร (ถึงทำแบบนี้) โดนมาแล้ว บอกให้คุณลูกค้ากด หากันอยู่ตั้งนาน

จากนั้น ก็จะมีช่องให้กรอกชื่อบริการ ก็ใส่อะไรไปก็ได้ แล้วก็เลือกการแจ้งเตือนเป็นแบบตัวต่อตัว

แล้วก็ ออก Token โลด มันจะบอกชุด Token มา 1 ชุด อย่าเพิ่งปิดหน้าต่างมันนะครับ ให้ก๊อปชุด Token ออกมาเก็บไว้ก่อน เพราะถ้าปิด มันจะหายไปเบย ต้องไปลบบริการทิ้ง แล้วเริ่มออก Token ใหม่

ไอ้ตรงชุด Token มันแสดงผลไม่ครบด้วยนะ ให้ดับเบิ้ลคลิ้ก แล้วก๊อปอาแล้วกัน

เมื่อได้ Token แล้วก็จบสำหรับฝั่งผู้ใช้งาน

ทดลองส่ง Notify

ขอใช้ ภาษา PHP แล้วกันง่ายสุดสำหรับผมแล้ว

$URL = 'https://notify-api.line.me/api/notify';
$TOKEN = '... ใส่ TOKEN ที่ได้มาตรงนี้ ...';

$MESSAGE = 'ยายมีขายหอยยายมอยขายหมีวันดีคืนดีหอยยายมีไปกัดหมียายมอย';

$query = http_build_query(['message' => $MESSAGE], '', '&');
$header = [
    'http' => [
        'method' => 'POST',
        'header' => 'Content-Type: application/x-www-form-urlencoded' . PHP_EOL
            . 'Authorization: Bearer ' . $TOKEN . PHP_EOL
            . 'Content-Length: ' . strlen($query) . PHP_EOL,
        'content' => $query
    ]
];
$context = stream_context_create($header);
$output = file_get_contents($URL, false, $context);

$result = json_decode($output);

print_r($result);

สรุปคือ แค่ส่ง Request ไปที่ API มันเท่านั้นล่ะครับ ถ้าส่งสำเร็จ ก็จะได้ผลลัพธ์มาแบบนี้ (status 200 แปลว่าโอเคใช้ได้)

stdClass Object
(
    [status] => 200
    [message] => ok
)

แล้วดูใน Line ของเรา (หรือของคนที่เราส่งให้) ก็จะเห็น เด้งขึ้นมาแบบนี้ครับ

จบ