Page 1 of 1
สอบถาม VBA ส่งรูปผ่าน Line notify ครับ
Posted: Sun Jan 19, 2020 1:38 pm
by koker12
คือผมติดปัญญาการอ้างอิงรูปภาพครับ ไม่สามารถอ้างอิงได้
Code: Select all
Sub SendMessageToLineNotify()
Dim oXML As Object
Dim strToken As String
Dim strMessage As String
Dim strDate As String
Dim URL As String
strToken = Sheet1.Range("B1")
URL = "https://notify-api.line.me/api/notify"
strDate = Format(Now, "DD/MM/YYYY - HH:MM:SS")
Pic = "C:\All\1.jpg"
strMessage = "message=" & strDate & Pic
Set oXML = CreateObject("Microsoft.XMLHTTP")
With oXML
.Open "POST", URL, 0
.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
.SetRequestHeader "Authorization", "Bearer " & strToken
.send (strMessage)
Debug.Print oXML.responseText
End With
Set oXML = Nothing
End Sub
Re: สอบถาม VBA ส่งรูปผ่าน Line notify ครับ
Posted: Sun Jan 19, 2020 4:29 pm
by snasui
ตัวอย่าง Code การส่งภาพผ่าน Line Notify ตามด้านล่างครับ
Code: Select all
Sub SendPictureViaLineNotify()
Dim URL As String
Dim sToken As String
Dim sFilepath As String
Dim nFile As Integer
Dim baBuffer() As Byte
Dim ssPostData1 As String
Dim ssPostData2 As String
Dim ssPostData3 As String
Dim Messagelength As Integer
Dim arr1() As Byte
Dim arr2() As Byte
Dim arr3() As Byte
Dim arr4() As Byte
Dim arraytotal As Long
Dim sendarray() As Byte
Const STR_BOUNDARY As String = "------------------------058b4eeb7d99b4f6"
sToken = "Your token" 'Paste your token after equal sign
URL = "https://notify-api.line.me/api/notify"
sFilepath = Application.GetOpenFilename(FileFilter:="Picture (*.jpg*),*.jpg*,(*.png*),*.png*")
If sFilepath = "False" Then Exit Sub
sfilename = VBA.Right(sFilepath, VBA.InStr(VBA.StrReverse(sFilepath), "\") - 1)
ssPostData1 = vbCrLf & "--" & STR_BOUNDARY & vbCrLf & _
"Content-Disposition: form-data; name=" & """message""" & vbCrLf & vbCrLf
arr1 = StrConv(ssPostData1, vbFromUnicode)
arr2 = (" ")
ssPostData2 = vbCrLf & "--" & STR_BOUNDARY & vbCrLf & "Content-Disposition: form-data; name=" & _
"""imageFile""" & "; filename=" & sfilename & vbCrLf & _
"Content-Type: image/jpng" & vbCrLf & vbCrLf
arr3 = StrConv(ssPostData2, vbFromUnicode)
nFile = FreeFile
Open sFilepath For Binary Access Read As nFile
If LOF(nFile) > 0 Then
ReDim baBuffer(0 To LOF(nFile) - 1) As Byte
Get nFile, , baBuffer
imagear = baBuffer
End If
Close nFile
arr4 = StrConv(vbCrLf & "--" & STR_BOUNDARY & "--" & vbCrLf, vbFromUnicode)
arraytotal = UBound(arr1) + UBound(arr2) + UBound(arr3) + UBound(imagear) + UBound(arr4) + 4
ReDim sendarray(arraytotal)
For i = 0 To UBound(arr1)
sendarray(i) = arr1(i)
Next
For i = 0 To UBound(arr2)
sendarray(UBound(arr1) + i + 1) = arr2(i)
Next
For i = 0 To UBound(arr3)
sendarray(UBound(arr1) + UBound(arr2) + i + 2) = arr3(i)
Next
For i = 0 To UBound(imagear)
sendarray(UBound(arr1) + UBound(arr2) + UBound(arr3) + i + 3) = imagear(i)
Next
For i = 0 To UBound(arr4)
sendarray(UBound(arr1) + UBound(arr2) + UBound(arr3) + UBound(imagear) + i + 4) = arr4(i)
Next
With CreateObject("Microsoft.XMLHTTP")
.Open "POST", URL, 0
.SetRequestHeader "Content-Type", "multipart/form-data; boundary=" & STR_BOUNDARY
.SetRequestHeader "Authorization", "Bearer " & sToken
.send sndar(sendarray)
End With
End Sub
Public Function sndar(sendarray As Variant) As Byte()
sndar = sendarray
End Function
ดูเพิ่มเติมที่นี่ครับ
Send Image with LINE Notify
Re: สอบถาม VBA ส่งรูปผ่าน Line notify ครับ
Posted: Sun Jan 19, 2020 5:24 pm
by koker12
ผมใช้ Code นี้ แล้วมันเป็นแบบนี้ครับ ต้องแก้ไขตรงไหนครับ
Untitled.png
Re: สอบถาม VBA ส่งรูปผ่าน Line notify ครับ
Posted: Sun Jan 19, 2020 5:35 pm
by snasui
ตัวแปรนั้นใช้เหมือนต้นฉบับครับ
Re: สอบถาม VBA ส่งรูปผ่าน Line notify ครับ
Posted: Sun Jan 19, 2020 5:37 pm
by koker12
ผมอยากให้ ส่งทั้ง รูป และ ตัวหนังสือ ต้องแก้ตรงไหนครับ
Re: สอบถาม VBA ส่งรูปผ่าน Line notify ครับ
Posted: Sun Jan 19, 2020 5:53 pm
by snasui
ใช้ทั้งสอง Code ประกอบกันได้โดยใช้ Code แรกส่งข้อความมและเรียก Code ที่สองเพื่อส่งภาพครับ
Re: สอบถาม VBA ส่งรูปผ่าน Line notify ครับ
Posted: Sun Jan 19, 2020 5:56 pm
by koker12
ขอบคุณครับ
Re: สอบถาม VBA ส่งรูปผ่าน Line notify ครับ
Posted: Fri Apr 21, 2023 10:18 pm
by nutpochan
สอบถามเพิ่มเติม ครับ
ถาม เราจะเอา option หน้าต่าง เลือกไฟล์ ออก
โดย เรากำหนด แหล่งที่อยู่ไฟล์ไป เลย สามารถ แก้ไข โค๊ดได้อย่างไรครับ
Re: สอบถาม VBA ส่งรูปผ่าน Line notify ครับ
Posted: Sat Apr 22, 2023 6:25 am
by nutpochan
รบกวน เจ้า ของกระทู้ แชร์ โค๊ดที่สำเร็จ ทีครับ
Re: สอบถาม VBA ส่งรูปผ่าน Line notify ครับ
Posted: Sat Apr 22, 2023 6:47 am
by snasui
nutpochan wrote: Fri Apr 21, 2023 10:18 pm
เราจะเอา option หน้าต่าง เลือกไฟล์ ออก
โดย เรากำหนด แหล่งที่อยู่ไฟล์ไป เลย สามารถ แก้ไข โค๊ดได้อย่างไรครับ
แก้ที่ Statement นี้
Application.GetOpenFilename(FileFilter:="Picture (*.jpg*),*.jpg*,(*.png*),*.png*")
ถ้าไม่ต้องการให้เกิด Popup ก็ใส่ Path เข้าไปแทนครับ
Re: สอบถาม VBA ส่งรูปผ่าน Line notify ครับ
Posted: Sat Apr 22, 2023 5:06 pm
by nutpochan
ผม ใส่ เข้าไป แบบนี้ แล้ว eror แก้อย่างไร ครับ
Code: Select all
sFilepath = Application.GetOpenFilename(FileFilter:=C:\Users\nutpo\Desktop\tarket\IMG_9176.JPG)
Re: สอบถาม VBA ส่งรูปผ่าน Line notify ครับ
Posted: Sat Apr 22, 2023 5:29 pm
by nutpochan