| 
 | 
 
  
 
  
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
 
 
 
 
 |