เขียน code ส่ง Line Notify ด้วย C#

เริ่มต้นต้องประกาศ Using ก่อน ดังนี้ using System.Net;using System.IO; แล้วใส่ code ตามด้านล่างนี้ พารามิเตอร์ที่ต้องส่งมีดังนี้ lineToken วิธีการขอ Line Token ดูได้จากบทความ การส่ง Line Notify ด้วย Command Line message คือข้อความที่ต้องการจะส่งผ่าน Line Notify ในการทดสอบฟังก์ชันหรือใช้งานฟังก์ชันนี้เครื่องคอมพิวเตอร์ต้องทำการต่อ internet ด้วยถึงจะทำงานได้ ตัวอย่างการเรียกใช้ฟังก์ชัน LineNotify(“DwNQ7NQxrG8wgEaoUKvjgWKh1n08rxxxxxx”,”Hello World” ); ผลที่ได้ ถ้าหากต้องการให้ส่ง sticker หรือ รูปภาพไปด้วยให้ใส่ code ตามด้านล่างนี้ พารามิเตอร์ที่ต้องส่งมีดังนี้ lineToken วิธีการขอ Line Token ดูได้จากบทความ การส่ง Line Notify ด้วย Command Line message คือข้อความที่ต้องการจะส่งผ่าน Line Notify stickerPackageID กับ stickerID ดูได้จาก sticker_list pictureUrl คือ url ของรูปภาพที่ต้องการจะส่งผ่าน Line Notify ตัวอย่างการเรียกใช้ฟังก์ชัน LineNotify(“DwNQ7NQxrG8wgEaoUKvjgWKh1n08rxxxxxx”,”สวัสดีชาวโลก” , 1 , 10 , “https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png”); ผลที่ได้

Read More »

สร้าง Web API สำหรับส่ง iOS Push Notification ด้วย dotAPNS

ความสามารถของแอปพลิเคชันในปัจจุบันที่จะขาดไม่ได้เลย อย่าง Push Notification นั้น สำหรับนักพัฒนาชาว .Net แน่นอนครับว่ามี Library มากมายให้เลือกใช้ ในบทความนี้ผมจะเล่าวิธีการหนึ่ง ที่ได้เลือกใช้เพื่อตอบโจทย์การเชื่อมต่อแอปพลิเคชันกับหลายๆฐานข้อมูล การที่เราจะไป Deploy ตัวส่ง (Sender) ไว้ทุกๆ Server นั้นในด้าน Compatibility, Configuration, Maintain นั้นมีปัญหาแน่นอน เพราะข้อกำหนดของ Apple นั้นมีหลายอย่างพอสมควร ก่อนที่ตัวส่งของเรา จะได้รับอนุญาตุให้ส่งข้อความไปหาผู้ใช้ได้ ดังนั้นการติดตั้ง Sender ในแบบ Web API ไว้เพียงที่เดียว แล้วให้ทุก Client ที่ต้องการส่งมาเรียกใช้งาน จึงเป็นการลดปัญหาข้างต้นได้ สิ่งที่จะต้องมี 1.KeyID, BundleID, TeamID ทั้งสามค่านี้สามารถดูได้จาก appstoreconnect ในรายละเอียดของแอปพลิเคชัน 2.Push Notification Certification (.p8) ในบทความนี้จะใช้วิธีการส่งแบบ Token Based ซึ่งมีความยืดหยุ่นและบำรุงรักษาได้ง่ายกว่า แบบ Certification Based แต่อย่างไรก็ตามยังคงต้องมี Certificate สำหรับการยืนยันตัวตนประกอบการสร้าง Token อยู่ดี ซึ่งสามารถเข้าไปสร้างได้ที่ developer.apple.com > Account > Key เลือกสร้างแบบApple Push Notifications service (APNs) 3. Web Server ที่สามารถเชื่อมต่อด้วย HTTPS, HTTP/2 ได้ สร้างโปรเจค Web API ในบทความนี้ใช้ Visual Studio 2019 Version 16.8.0 1.ไปที่ File > New > Project เลือกเทมเพลต ASP.NET Web Application (.Net Framework) กดปุ่ม Create 2.เลือกรูปแบบโปรเจคเป็นแบบ Web API กดปุ่ม Create 3.เมื่อสร้างโปรเจคสำเร็จจะได้ไฟล์ต่างๆดังรูป (Main.aspx, MainController.cs สร้างเองภายหลัง สามารถตั้งชื่ออื่นๆได้) 4.ทำการเพิ่ม Library dotAPNS ด้วย Nuget Manager โดยการคลิกขวาที่โปรเจค เลือกเมนู Manage Nuget Packages ค้นหาด้วยคำว่า dotAPNS จากนั้นกดปุ่ม Install 5. ในไฟล์ MainController.cs ทำการ using dotAPNS มาใช้งาน จากนั้นสร้าง Method ชื่อ SendPush (ไม่จำเป็นต้องชื่อนี้) โดยโค้ดการสร้าง Token และส่ง Push Notification ทั้งหมดมีดังนี้ จากโค้ดด้านบน สามารถทราบว่าส่วนไหนทำหน้าที่อะไรได้จาก Comment ครับ เพียงเท่านี้ก็สามารถ Publish และ Deploy Web API บน Server เพื่อทดสอบการใช้งานได้แล้ว อย่างไรก็แล้วแต่ Web API ดังกล่าวยังต้องการ การปรับแต่งให้เหมาะสมกับระบบของนักพัฒนาแต่ละท่าน แต่โดยขั้นตอนหลักๆก็มีเพียงเท่านี้ครับ 6.หน้าฟอร์ม และตัวอย่างโค้ดเรียกใช้งาน (อยู่ในหน้า Main.aspx,Main.aspx.cs เพื่อใช้ทดสอบการส่ง) สังเกตุว่าในส่วนของการส่งจาก Client อื่นๆผ่าน Web API นั้นต้องการเพียงแค่ HttpWebRequest, Newtonsoft.Json เท่านั้นทำให้มีขนาดเล็ก และลดปัญหาความเข้ากันได้ในการติดตั้ง Client ไปได้อย่างแน่นอนครับ ขั้นตอนที่มีความสำคัญแต่ยังไม่ได้กล่าวถึงในบทความนี้นั้นคือการขอ Token ระบุเครื่องเป้าหมายจากผู้ใช้ที่ติดตั้งแอปพลิเคชันของเราครับ เนื่องจากวิธีการจะจำเพาะกับเครื่องมือที่ใช้ในการพัฒนาแอปพลิเคชัน

Read More »

การติดตั้งเว็บไซต์ ที่พัฒนาด้วย ASP.NET บน IIS

สำหรับนักพัฒนาเว็บแอปพลิเคชัน ที่จะต้องทำหน้าที่ครบวงจร (Full Stack Programer) สิ่งที่ต้องทำหลังจากพัฒนาเว็บขึ้นมาเสร็จแล้ว คือการติดตั้งบนเซิร์ฟเวอร์ (Deploy) ในบทความนี้จะเล่าขั้นตอนหลักๆ ในการติดตั้งเว็บไซต์ ที่พัฒนาด้วย ASP.NET (ไม่ว่าจะพัฒนาด้วย .Net Framework เวอร์ชันไหนก็ขั้นตอนเดียวกัน เปลี่ยนแปลงแค่ .Net Runtime ที่ใช้งาน) บนวินโดวส์เซิร์ฟเวอร์ โดยใช้ IIS (Internet Information Services) ซึ่งหน้าตาอาจเปลี่ยนแปลงไปตามเวอร์ชันของ IIS แต่ขั้นตอนการตั้งค่ายังคงคล้ายคลึงกัน Publish เว็บไซต์ (กรณีใช้ Visual Studio) 1.คลิกขวาที่ชื่อโปรเจ็ค เลือก Publish 2.จะได้หน้าจอเลือกประเภทในบทความนี้เลือกเป็น Folder เพื่อใช้วิธีการ Deploy แบบนำไฟล์ไปวางที่ Server เอง ดังรูป 3. เลือกที่ตั้งไฟล์ กด Finish 4. ตั้งค่าการ Publish จากในรูปคือให้ลบไฟล์ที่มีอยู่ก่อน และใช้รูปแบบ Release ในการ Compile 5. ตัวอย่างไฟล์ที่ทำการ Publish เสร็จแล้ว 6. ทำการ Copy ไฟล์ทั้งหมดไปวางใน wwwroot บน Server ติดตั้ง Component ต่างๆ 1.ในบทความนี้ใช้ Windows Server 2016 Datacenter เป็นตัวอย่าง ซึ่งการติดตั้ง Component ต่างๆ สามารถทำได้ผ่าน Server Manager > Manage > Add Roles and Features ได้เกือบทั้งหมด ยกเว้น Runtime อื่นๆที่เว็บไซต์มีการนำมาใช้งานเพิ่มเติม 2. ติดตั้ง IIS , ASP.NET และ Component ที่เกี่ยวข้อง โดยไปที่ Server Role > Web Server (IIS) และทำการเลือก Component ต่างๆดังรูป จากนั้นกด Next 3. ติดตั้ง .Net Framework เวอร์ชันที่เว็บไซต์ใช้งาน ในตัวอย่างใช้ .Net Framework 4.6 โดยสามารถเลือกจาก เมนู Features ดังรูป 4. เท่านี้ก็จะมี Component ที่จำเป็นในการติดตั้งเว็บไซต์ที่พัฒนาด้วย ASP.NET แล้ว สร้าง และตั้งค่า Application Pool 1.เปิดโปรแกรม IIS โดยไปที่ Start > Windows Administrative Tools > Internet information Services (IIS) จะได้หน้าจอดังรูป 2. เลือกเมนู Application Pool จากนั้นคลิก Add Application Pool จะได้หน้าจอการตั้งค่าดังรูป โดยที่ .Net CLR Version จะแยกเป็น 2.0.xxx และ 4.0.xxx โดยหากต้องการใช้งาน .Net Runtime 3.5 – 4.x สามารถเลือกเป็น 4.0.x ได้ทั้งหมด 3. เมื่อสร้างสำเร็จ จะมีรายการ Application Pool ที่เราสร้างดังรูป สร้าง และตั้งค่าเว็บไซต์ ทดสอบเรียกใช้งาน 1.ในการสร้างไซต์นั้น หากบน Server นั้นยังไม่มีเว็บไซต์ใดๆ สามารถใช้ Default Web Site ได้เลย แต่ถ้ามีเว็บไซต์อื่นๆอยู่ก่อนแล้ว จะต้องพิจารณาว่าจะให้บริการในแบบใด เป็น Application ที่อยู่ภายใต้เว็บไซต์เดิม

Read More »

คลายข้อสงสัย “ทำไมสแกนบาร์โคดจากเครื่องอ่านแล้วไม่ enter หรือ tab ให้”

ในการพัฒนาระบบที่ต้องมีการอ่านข้อมูลจากเครื่องสแกนบาร์โคดแบบสองมิติ (แบบแท่งหรือแบบเส้น) รูปแบบในการทำงานมักจะเป็นการอ่านข้อมูลจากตัวบาร์โคด จากนั้นตามด้วยอักขระ Enter หรือ Tab เพื่อเป็นการระบุว่าให้ส่งข้อมูลที่อ่านได้จากบาร์โคดให้กับฟังก์ชันใดฟังก์ชันหนึ่งเพื่อนำไปใช้งานต่อ แต่ในบางครั้งอาจจะเคยเจอปัญหาว่าทำไมเมื่อสแกนบาร์โคดแล้วไม่มีการ Enter หรือ Tab โดยอัตโนมัติ ทำให้ต้องกดปุ่ม Enter หรือ Tab เองทุกครั้งจากคีย์บอร์ด หรือต้องปรับแต่ง code เพื่อเพิ่มอักขระ Enter หรือ Tab ต่อหลังข้อมูลที่อ่านได้จากเครื่องสแกนบาร์โคด หนึ่งในแนวทางสำหรับการแก้ปัญหานี้อยู่ที่ตัวคู่มือสำหรับเครื่องสแกนบาร์โคดแต่ละรุ่นนั่นเอง โดยในที่นี้จะยกตัวอย่างกรณีที่เคยพบดังนี้ ตัวอย่างการตั้งค่าเครื่องอ่านบาร์โคด Honeywell รุ่น Xenon Model 1900 หาคู่มือการตั้งค่าตามรุ่น ซึ่งรุ่นนี้ คือ Xenon Model 1900 (ถ้าไม่มีคู่มือที่ให้มาพร้อมกับอุปกรณ์ อาจจะสามารถค้นหาคู่มือได้จากทาง internet โดยค้นตามรุ่น หรือตามบริษัทผู้ผลิต) ในคู่มือที่เกี่ยวกับการตั้งค่าเพื่อแก้ปัญหานี้ จะมีรหัสบาร์โคดที่ให้เราทำการสแกนเพื่อตั้งค่าอุปกรณ์ดังนี้ กรณีต้องการให้ลงส่งอักขระ Enter หลังสแกนบาร์โคด สามารถทำได้โดยการสแกนบาร์โคดด้านล่าง กรณีต้องการให้ลงส่งอักขระ Tab หลังสแกนบาร์โคด สามารถทำได้โดยการสแกนบาร์โคดด้านล่าง สรุปควรแก้ปัญหาด้วยการเขียน Code หรือตั้งค่าอุปกรณ์ จากการเปรียบเทียบจะเห็นว่าหากใช้วิธีการเขียน code น่าจะเป็นแนวทางที่ดีกว่าในการแก้ปัญหานี้ เพราะเป็นวิธีการที่ไม่ขึ้นกับเครื่องสแกนบาร์โคด ไม่ต้องลำบากหาคู่มือ แต่วิธีการตั้งค่าอุปกรณ์นั้น อาจจะเหมาะสมในกรณีที่ต้องการอ่านข้อมูลบาร์โคดจำนวนมากลงไฟล์ เช่น อ่านลง text file หรืออ่านลง excel เพื่อนำไฟล์นี้เตรียมไว้เป็นข้อมูลสำหรับทดสอบนำเข้าระบบใดระบบหนึ่งอีกที เป็นต้น ถือว่าเป็นสิ่งที่รู้ไว้เป็นแนวทางนำไปประยุกต์ใช้ให้เหมาะกับสถานการณ์ได้

Read More »

Robot Framework Puppeteer

Robot Framework Puppeteer คืออะไร เป็น Library ที่ทำมาครอบ Puppeteer เพื่อให้ Robot framework ใช้งานได้ง่าย โดย Keyword ต่างๆจะเหมือนกับการใช้งาน Selenium Library ทำให้ใครที่ใช้งาน Selenium Library อยู่แล้วสามารถปรับตัว รวมไปจนถึง การเปลี่ยนมาใช้ Puppeteer ทำได้ง่ายเลยค่ะ และหมดปัญหาการที่เราต้องมาคอยอัพเดต Web driver อยู่ตลอด ๆ การติดตั้งง่ายมาก ๆ ดูให้ทันหล่ะ 555 รัน Command เดียวเลยจบ ไม่ต้องโหลด Chrome driver หรือ Setup Path เพิ่มเติมให้ปวดหัว เปิด Command line มาเลยค่ะ แล้วพิมพ์คำสั่ง pip install –upgrade robotframework-puppeteerlibrary การใช้งาน เราลองมารัน code เดิมที่เขียนไว้กันดูดีกว่า (selenium2library) อ้าวเฮ้ย!!! Error ซะงั้น Web driver ไม่ support ต้องอัพเดตอีกแล้ว งั้นขอไปอัพเดตแปปนึงนะ ไม่ขอเล่าถึงการอัพเดตแล้วนะ เคยเล่าไว้ตอนนึงแล้ว ไปลองหาอ่านกันดู อิอิ หลังจากอัพเดตแล้วมาลองรันอีกรอบ เปลี่ยนที่ Setting จาก Selenium2Library เป็น PuppeteerLibrary จากนั้นลองรันดู เปรียบเทียบความเร็วในการประมวลผลระหว่างใช้ Selenium2Library กับ PuppeteerLibraryรูปแรกจะเป็นการใช้ Selenium2Library รูปถัดไปจะเป็น PuppeteerLibrary จะเห็นได้ว่า PuppeteerLibrary ทำงานได้เร็วกว่า นี่ขนาดรันคำสั่งขนาดน้อย ๆ ไว้ลองกับคำสั่งที่ซับซ้อนแล้วจะมาเล่าให้ฟังค่ะ

Read More »