ชุมชนคนรักภาษาเบสิค - Visual Basic Community

 ลืมรหัสผ่าน
 ลงทะเบียน
ค้นหา
ดู: 48|ตอบกลับ: 0

[VB.NET] โค้ดการใช้งาน Line Messaging API (แทนที่ Line Notify)

[คัดลอกลิงก์]

319

กระทู้

511

โพสต์

6472

เครดิต

ผู้ดูแลระบบ

ทองก้อน ทับทิมกรอบ

Rank: 9Rank: 9Rank: 9

เครดิต
6472
โพสต์ เมื่อวาน 19:15 | ดูโพสต์ทั้งหมด |โหมดอ่าน




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 ...
  1. '// สมัครการใช้งาน Line Messaging API ที่
  2. '// https://manager.line.biz/
  3. '// https://developers.line.biz/en/
  4. '// จากนั้น สร้าง Channel ใน Line Messaging API
  5. '// รับ Channel Access Token และ User ID จากหน้า Line Console

  6. '// ติดตั้ง Library Newtonsoft.Json เพื่อช่วยจัดการ JSON
  7. '// ใน NuGet Package Manager Console ใช้คำสั่ง:
  8. '// Install-Package Newtonsoft.Json
  9. '// .Net Framework 4.5

  10. Public Class frmMain

  11.     ' / --------------------------------------------------------------------------------
  12.     ' / S T A R T ... H E R E
  13.     ' / --------------------------------------------------------------------------------
  14.     Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles Me.Load
  15.         txtMessage.Text = "ทดสอบการทำงานของ Line Messaging API"
  16.     End Sub

  17.     '// --------------------------------------------------------------------------------
  18.     '// คำสั่ง Async ใช้เพื่อระบุว่าฟังก์ชันหรือเมธอดสามารถดำเนินการแบบ Asynchronous
  19.     '// หรือเป็นทำงานแบบไม่รอให้เสร็จสมบูรณ์ก่อนที่จะไปทำคำสั่งถัดไปได้
  20.     '// โดยปกติจะใช้ร่วมกับคำสั่ง Await เพื่อเรียกใช้งานงานที่ใช้เวลานาน
  21.     '// เช่น การร้องขอข้อมูลจาก API, อ่าน/เขียนไฟล์, หรือรอเครือข่าย โดยไม่บล็อกส่วนที่เหลือของแอปพลิเคชัน
  22.     '// --------------------------------------------------------------------------------
  23.     Private Async Sub btnSendMessage_Click(sender As Object, e As EventArgs) Handles btnSendMessage.Click
  24.         If (String.IsNullOrEmpty(txtMessage.Text.Trim)) Then Return
  25.         '// เรียกไปยังคลาส LineMessagingAPI
  26.         Dim LineAPI As New LineMessagingAPI()
  27.         '// Await:
  28.         '// ใช้เพื่อรอการทำงานของงานที่ใช้เวลานาน โดยไม่บล็อกการทำงานของเธรดหลัก
  29.         '// คำสั่งหลัง Await จะรันเมื่อการทำงานนั้นเสร็จสมบูรณ์
  30.         Await LineAPI.SendMessageToYourSelfAsync(txtMessage.Text & vbCrLf & "วันที่ - เวลา: " & Now())
  31.     End Sub

  32.     Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExit.Click
  33.         Me.Close()
  34.     End Sub

  35.     Private Sub frmMain_FormClosed(sender As Object, e As FormClosedEventArgs) Handles Me.FormClosed
  36.         Me.Dispose()
  37.         GC.SuppressFinalize(Me)
  38.         Application.Exit()
  39.     End Sub
  40. End Class
คัดลอกไปที่คลิปบอร์ด

โค้ดในส่วนของคลาส LineMessingAPI.vb ...
  1. Imports System.Net.Http
  2. Imports Newtonsoft.Json
  3. Imports System.Text

  4. Public Class LineMessagingAPI
  5.     '// Channel Access Token จาก Line Developer Console
  6.     Private Const AccessToken As String = "ACCESS_TOKEN"    '// เปลี่ยนด้วย
  7.     '// ต้องใส่ User ID ของคุณ
  8.     Private Const YourUserId As String = ""    '// เปลี่ยนด้วย

  9.     '// --------------------------------------------------------------------------------
  10.     '// ฟังค์ชั่นในการทดสอบ Bot ตัวเอง
  11.     '// --------------------------------------------------------------------------------
  12.     Public Async Function SendMessageToYourSelfAsync(message As String) As Task
  13.         Try
  14.             Using httpClient As New HttpClient()
  15.                 httpClient.DefaultRequestHeaders.Accept.Add(New System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"))
  16.                 httpClient.DefaultRequestHeaders.Authorization = New System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", AccessToken)
  17.                 '//
  18.                 Dim url As String = "https://api.line.me/v2/bot/message/push"
  19.                 '// สร้าง Payload ตามรูปแบบที่ Line API ต้องการ
  20.                 '// Payload คือเนื้อหาข้อมูลที่ส่งไปยัง Line Server ผ่าน API เช่น การส่งข้อความ, การส่งรูปภาพ หรือการสร้าง Flex Message
  21.                 Dim MessageObject = New With {
  22.                 Key .to = YourUserId,
  23.                 Key .messages = New List(Of Object) From {
  24.                     New With {
  25.                         Key .type = "text",
  26.                         Key .text = If(String.IsNullOrEmpty(message), "ทดสอบข้อความ", message)
  27.                         }
  28.                     }
  29.                 }
  30.                 '// แปลง Object เป็น Json
  31.                 Dim JsonPayload As String = JsonConvert.SerializeObject(MessageObject)
  32.                 '// ตัวอย่าง:
  33.                 '// {
  34.                 '//      "to" "Uc241cafb4b9e8d6xxxxxxxxxxxxxxx",
  35.                 '//      "messages": [
  36.                 '//        {
  37.                 '//          "type": "text",
  38.                 '//          "text": "Hello, this is a test message."
  39.                 '//        }
  40.                 '//      ]
  41.                 '//    }
  42.                 '//Debug.Print("Payload: " & JsonPayload)  '// เพื่อตรวจสอบ payload

  43.                 '// เข้ารหัสเป็นแบบ UTF-8 เนื่องจากรองรับตัวอักษรหลากหลายภาษาและเป็นมาตรฐานสากล
  44.                 Dim Content = New StringContent(JsonPayload, Encoding.UTF8, "application/json")
  45.                 '// ส่ง POST request (ส่งคำขอแบบ Asynchronous)
  46.                 Dim Response = Await httpClient.PostAsync(url, Content)
  47.                 '// อ่านเนื้อหาตอบกลับ
  48.                 Dim ResponseContent = Await Response.Content.ReadAsStringAsync()
  49.                 '// ทดสอบของการตอบสนอง
  50.                 If Response.IsSuccessStatusCode Then
  51.                     MessageBox.Show("ส่งข้อความสำเร็จ!", "Complete", MessageBoxButtons.OK, MessageBoxIcon.Information)
  52.                 Else
  53.                     MessageBox.Show("เกิดข้อผิดพลาด: " & Response.StatusCode & vbCrLf & ResponseContent, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
  54.                 End If
  55.             End Using
  56.         Catch ex As Exception
  57.             MessageBox.Show("เกิดข้อผิดพลาด: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
  58.         End Try
  59.     End Function
  60. End Class
คัดลอกไปที่คลิปบอร์ด

ดาวน์โหลดโค้ดต้นฉบับตัวเต็ม (VB.NET + .Net Framework 4.5+) ได้ที่นี่ ...


ขออภัย! โพสต์นี้มีไฟล์แนบหรือรูปภาพที่ไม่ได้รับอนุญาตให้คุณเข้าถึง

คุณจำเป็นต้อง ลงชื่อเข้าใช้ เพื่อดาวน์โหลดหรือดูไฟล์แนบนี้ คุณยังไม่มีบัญชีใช่ไหม? ลงทะเบียน

x
สิ่งที่ดีกว่าการให้ คือการให้แบบไม่มีที่สิ้นสุด
ขออภัย! คุณไม่ได้รับสิทธิ์ในการดำเนินการในส่วนนี้ กรุณาเลือกอย่างใดอย่างหนึ่ง ลงชื่อเข้าใช้ | ลงทะเบียน

รายละเอียดเครดิต

ข้อความล้วน|อุปกรณ์พกพา|ประวัติการแบน|G2GNet.com  

GMT+7, 2025-5-1 03:14 , Processed in 0.185401 second(s), 5 queries , File On.

Powered by Discuz! X3.4, Rev.62

Copyright © 2001-2020 Tencent Cloud.

ตอบกระทู้ ขึ้นไปด้านบน ไปที่หน้ารายการกระทู้