LINE Notify การส่งข้อความผ่าน LINE ด้วย C# , PHP

รู้จักกับ LINE Notify
LINE Notify เป็นบริการของทาง LINE เป็นบริการและช่องทางที่ถูกต้อง ท่านสามารถส่งความ การแจ้งเตือนต่าง ๆ ไปยังแอคเค้าของท่านเองได้ ผ่านการใช้ API ซึ่งเรียกผ่าน HTTP POST แบบง่าย ๆ

ข้อจำกัดของ LINE Notify คือ สามารถส่งแจ้งเตือนได้เฉพาะผู้ที่ขอใช้ หรือกลุ่มที่ผู้ขอใช้เป็นสมาชิกเท่านั้น ไม่สามารถส่งข้อความเข้าห้องสนทนาของเพื่อน ๆ ได้ หากต้องการให้สามารถส่งข้อความหาใครก็ได้ ท่านต้องใช้ LINE Bot API แทน

เพิ่ม LINE Notify เป็นเพื่อน
ก่อนที่จะใช้งาน API และส่งการแจ้งเตือน ท่านต้องเพิ่ม LINE Notify เป็นเพื่อนก่อน โดยสแกน QR Code ด้านล่างนี้
line-notify

 

การขอ Access Token

ในการใช้งาน API ในทุก ๆ บริการ จะมีสิ่งที่เรียกว่า Access Token ไว้สำหรับเป็นรหัสที่ใช้ตอนจะเข้าใช้งาน API โดยรหัสนี้จะเป็นข้อความแทนอีเมล์ และพาสเวิคของเรา ดังนั้นหาก Access Token ถูกเปิดเผย เรายังสามารถใช้งานแอ๊กเค้าได้ปกติ (แต่หากรู้ตัวว่า Access Token ถูกเปิดเผย ควรยกเลิก แล้วขอ Access Token ใหม่ทันที)

เข้าไปที่หน้าเว็บ https://notify-bot.line.me/my/ จากนั้นระบบจะให้เราล็อกอินด้วยแอ๊คเค้า LINE โดยกรอกอีเมล์ และรหัสผ่านที่ได้ตั้งไว้ลงไป

 

login-line

 

เมื่อล็อกอินสำเร็จแล้ว ให้เลื่อนลงมาด้านล่าง จะพบ ออก Access Token (สำหรับผู้พัฒนา) ให้กดปุ่ม ออก Token

LINE Notify-token

พอมาถึงส่วนนี้ให้เราทำความเข้าใจก่อนว่า เมื่อเราส่งข้อความไปแล้ว ข้อความที่ขึ้นจะปรากฏในรูปแบบ

[ชื่อ Token]: [ข้อความ]

ดังนั้นในช่องที่ 1 สามารถกรอกเป็นอะไรก็ได้ และสิ่งที่กรอกนั้นจะติดไปพร้อมกับข้อความเสมอ เช่น หากกรอกว่า notiเมื่อใช้ API ส่งข้อความว่า “สวัสดี” ข้อความจะขึ้นว่า “noti:สวัสดี”

ในช่องที่ 2 จะให้เลือกว่าเราจะส่งข้อความเข้าไปในกลุ่มไหน หรือส่งให้ตัวเองเท่านั้น

เมื่อกรอกครบแล้ว ให้กดปุ่ม ออก Token

 

token-1-line

เมื่อกดปุ่มแล้ว ออก token แล้วจะได้ รหัส token เราจะนำมาใช้ใน โปรแกรมของเรา

 

token-2-line

*** ทาง line ได้เพิ่มส่ง สติ๊กเกอร์ได้แล้ว สามารถเพิ่ม Parameter (stickerPackageId และ stickerId) Package ID.
Sticker List. โด้ดสติ๊กเกอร์ครับ ***

 

โด้ดตัวอย่างการนำมาใช้ ทดลองส่งข้อข้อความไปที่ LINE ผ่าน C#

โด้ดตัวอย่างเป็นการใช้  http post ในการ ส่งข้อความ การทำคือ ส่งข้อความไปที่ LINE ด้วย HTTP POST -> LINE ทำการใส่เข้ามือถือเราอีกที การส่งโดยใช้ token ที่ได้มาใส่ไปใน header  ข้อความที่เราจะส่ง message=xxx

var request = (HttpWebRequest)WebRequest.Create("https://notify-api.line.me/api/notify");
var postData = string.Format("message={0}","สวัสดี");
var data = Encoding.UTF8.GetBytes(postData);

request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
request.Headers.Add("Authorization", "Bearer Un2LudBajEKlJs8I7qbWIMkl3f2WjGH56YuDJ9xxxxx");

using (var stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}

var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

ตัวอย่าง Code php

<?php 
$chOne = curl_init(); 
curl_setopt( $chOne, CURLOPT_URL, "https://notify-api.line.me/api/notify"); 
// SSL USE 
curl_setopt( $chOne, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt( $chOne, CURLOPT_SSL_VERIFYPEER, 0); 
//POST 
curl_setopt( $chOne, CURLOPT_POST, 1); 
// Message 
curl_setopt( $chOne, CURLOPT_POSTFIELDS, "message=สวัสดี"); 
//ถ้าต้องการใส่รุป ให้ใส่ 2 parameter imageThumbnail และimageFullsize
//curl_setopt( $chOne, CURLOPT_POSTFIELDS, "message=hi&imageThumbnail=http://www.wisadev.com/wp-content/uploads/2016/08/cropped-wisadevLogo.png&imageFullsize=http://www.wisadev.com/wp-content/uploads/2016/08/cropped-wisadevLogo.png"); 
// follow redirects 
curl_setopt( $chOne, CURLOPT_FOLLOWLOCATION, 1); 
//ADD header array 
$headers = array( 'Content-type: application/x-www-form-urlencoded', 'Authorization: Bearer Un2LudBajEKlJs8I7qbWIMkl3f2WjGH56Yxxx9yU9zT', ); 
curl_setopt($chOne, CURLOPT_HTTPHEADER, $headers); 
//RETURN 
curl_setopt( $chOne, CURLOPT_RETURNTRANSFER, 1); 
$result = curl_exec( $chOne ); 
//Check error 
if(curl_error($chOne)) { echo 'error:' . curl_error($chOne); } 
else { $result_ = json_decode($result, true); 
echo "status : ".$result_['status']; echo "message : ". $result_['message']; } 
//Close connect 
curl_close( $chOne ); ?>

ตัวอย่าง php upload image จากเครื่อง

<?php
$token = 'OphyIzcTddBnUoMJyKWOEN1oeqEGmkEzW6G573Jxxxx';
$file_name_with_full_path = 'D:\\pexels-photo-432797.jpeg';
if (function_exists('curl_file_create')) {
  $cFile = curl_file_create($file_name_with_full_path);
} else {
  $cFile = '@'.realpath($file_name_with_full_path);
}
$post = array('message' => 'สวัสดี','imageFile'=> $cFile);

print_r(LineNotify::PushMessage($token,$post));

class LineNotify
{
  public function PushMessage($token, $body)
  {
    $result_ = "";
    $chOne = curl_init();
    curl_setopt( $chOne, CURLOPT_URL, "https://notify-api.line.me/api/notify");
    // SSL USE
    curl_setopt( $chOne, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt( $chOne, CURLOPT_SSL_VERIFYPEER, 0);
    //POST
    curl_setopt( $chOne, CURLOPT_POST, 1);
    curl_setopt( $chOne, CURLOPT_POSTFIELDS, $body);
    curl_setopt( $chOne, CURLOPT_FOLLOWLOCATION, 1);
    //ADD header array
    $headers = array( 'Content-type: multipart/form-data', 'Authorization: Bearer '.$token, );
    curl_setopt($chOne, CURLOPT_HTTPHEADER, $headers);
    //RETURN
    curl_setopt( $chOne, CURLOPT_RETURNTRANSFER, 1);
    $result = curl_exec( $chOne );
    //Check error
    if(curl_error($chOne)) {
        $error_ = array('status' => "Error",'massage' => curl_error($chOne));
        $result_ = json_decode($error_, true);
    }
    else {
      $result_ = json_decode($result, true);
    }
    //Close connect
    curl_close( $chOne );
    return  $result_;
  }
}
?>

แบบลงทะเบียนขอใช้บริการ