|


Add References ... NewtonSoft.Json (ใช้แยกข้อมูลจาก Object มาเป็น JSON Format)
โค้ด VB.NET (.Net Framework 4.5+) กับการใช้งาน Line Messaging API เพื่อใช้แทนที่ Line Notify ...
สมัครการใช้งาน Line Official Account ที่
https://manager.line.biz/
https://developers.line.biz/en/
คลิปวิดีโอในการสมัครใช้งาน Line Official Account เพื่อรับค่า Channel Access Token และ UserID (สำคัญ)
มาดูโค้ดฉบับเต็มกันเถอะ ... frmMain.vb ...
- '// สมัครการใช้งาน Line Messaging API ที่
- '// https://manager.line.biz/
- '// https://developers.line.biz/en/
- '// จากนั้น สร้าง Channel ใน Line Messaging API
- '// รับ Channel Access Token และ User ID จากหน้า Line Console
- '// ติดตั้ง Library Newtonsoft.Json เพื่อช่วยจัดการ JSON
- '// ใน NuGet Package Manager Console ใช้คำสั่ง:
- '// Install-Package Newtonsoft.Json
- '// .Net Framework 4.5
- Public Class frmMain
- ' / --------------------------------------------------------------------------------
- ' / S T A R T ... H E R E
- ' / --------------------------------------------------------------------------------
- Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles Me.Load
- txtMessage.Text = "ทดสอบการทำงานของ Line Messaging API"
- End Sub
- '// --------------------------------------------------------------------------------
- '// คำสั่ง Async ใช้เพื่อระบุว่าฟังก์ชันหรือเมธอดสามารถดำเนินการแบบ Asynchronous
- '// หรือเป็นทำงานแบบไม่รอให้เสร็จสมบูรณ์ก่อนที่จะไปทำคำสั่งถัดไปได้
- '// โดยปกติจะใช้ร่วมกับคำสั่ง Await เพื่อเรียกใช้งานงานที่ใช้เวลานาน
- '// เช่น การร้องขอข้อมูลจาก API, อ่าน/เขียนไฟล์, หรือรอเครือข่าย โดยไม่บล็อกส่วนที่เหลือของแอปพลิเคชัน
- '// --------------------------------------------------------------------------------
- Private Async Sub btnSendMessage_Click(sender As Object, e As EventArgs) Handles btnSendMessage.Click
- If (String.IsNullOrEmpty(txtMessage.Text.Trim)) Then Return
- '// เรียกไปยังคลาส LineMessagingAPI
- Dim LineAPI As New LineMessagingAPI()
- '// Await:
- '// ใช้เพื่อรอการทำงานของงานที่ใช้เวลานาน โดยไม่บล็อกการทำงานของเธรดหลัก
- '// คำสั่งหลัง Await จะรันเมื่อการทำงานนั้นเสร็จสมบูรณ์
- Await LineAPI.SendMessageToYourSelfAsync(txtMessage.Text & vbCrLf & "วันที่ - เวลา: " & Now())
- End Sub
- Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExit.Click
- Me.Close()
- End Sub
- Private Sub frmMain_FormClosed(sender As Object, e As FormClosedEventArgs) Handles Me.FormClosed
- Me.Dispose()
- GC.SuppressFinalize(Me)
- Application.Exit()
- End Sub
- End Class
คัดลอกไปที่คลิปบอร์ด
โค้ดในส่วนของคลาส LineMessingAPI.vb ...
- Imports System.Net.Http
- Imports Newtonsoft.Json
- Imports System.Text
- Public Class LineMessagingAPI
- '// Channel Access Token จาก Line Developer Console
- Private Const AccessToken As String = "ACCESS_TOKEN" '// เปลี่ยนด้วย
- '// ต้องใส่ User ID ของคุณ
- Private Const YourUserId As String = "" '// เปลี่ยนด้วย
- '// --------------------------------------------------------------------------------
- '// ฟังค์ชั่นในการทดสอบ Bot ตัวเอง
- '// --------------------------------------------------------------------------------
- Public Async Function SendMessageToYourSelfAsync(message As String) As Task
- Try
- Using httpClient As New HttpClient()
- httpClient.DefaultRequestHeaders.Accept.Add(New System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"))
- httpClient.DefaultRequestHeaders.Authorization = New System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", AccessToken)
- '//
- Dim url As String = "https://api.line.me/v2/bot/message/push"
- '// สร้าง Payload ตามรูปแบบที่ Line API ต้องการ
- '// Payload คือเนื้อหาข้อมูลที่ส่งไปยัง Line Server ผ่าน API เช่น การส่งข้อความ, การส่งรูปภาพ หรือการสร้าง Flex Message
- Dim MessageObject = New With {
- Key .to = YourUserId,
- Key .messages = New List(Of Object) From {
- New With {
- Key .type = "text",
- Key .text = If(String.IsNullOrEmpty(message), "ทดสอบข้อความ", message)
- }
- }
- }
- '// แปลง Object เป็น Json
- Dim JsonPayload As String = JsonConvert.SerializeObject(MessageObject)
- '// ตัวอย่าง:
- '// {
- '// "to" "Uc241cafb4b9e8d6xxxxxxxxxxxxxxx",
- '// "messages": [
- '// {
- '// "type": "text",
- '// "text": "Hello, this is a test message."
- '// }
- '// ]
- '// }
- '//Debug.Print("Payload: " & JsonPayload) '// เพื่อตรวจสอบ payload
- '// เข้ารหัสเป็นแบบ UTF-8 เนื่องจากรองรับตัวอักษรหลากหลายภาษาและเป็นมาตรฐานสากล
- Dim Content = New StringContent(JsonPayload, Encoding.UTF8, "application/json")
- '// ส่ง POST request (ส่งคำขอแบบ Asynchronous)
- Dim Response = Await httpClient.PostAsync(url, Content)
- '// อ่านเนื้อหาตอบกลับ
- Dim ResponseContent = Await Response.Content.ReadAsStringAsync()
- '// ทดสอบของการตอบสนอง
- If Response.IsSuccessStatusCode Then
- MessageBox.Show("ส่งข้อความสำเร็จ!", "Complete", MessageBoxButtons.OK, MessageBoxIcon.Information)
- Else
- MessageBox.Show("เกิดข้อผิดพลาด: " & Response.StatusCode & vbCrLf & ResponseContent, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
- End If
- End Using
- Catch ex As Exception
- MessageBox.Show("เกิดข้อผิดพลาด: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
- End Try
- End Function
- End Class
คัดลอกไปที่คลิปบอร์ด
ดาวน์โหลดโค้ดต้นฉบับตัวเต็ม (VB.NET + .Net Framework 4.5+) ได้ที่นี่ ...
|
ขออภัย! โพสต์นี้มีไฟล์แนบหรือรูปภาพที่ไม่ได้รับอนุญาตให้คุณเข้าถึง
คุณจำเป็นต้อง ลงชื่อเข้าใช้ เพื่อดาวน์โหลดหรือดูไฟล์แนบนี้ คุณยังไม่มีบัญชีใช่ไหม? ลงทะเบียน
x
|