如何使用电报漫游器

时间:2020-04-06 06:27:12

标签: vba telegram-bot

我使用以下代码发送本地图像。

将图像文件转换为base64>通过http multipart / form-data表单发布

您知道为什么失败吗?请回答我。谢谢

响应的文本= {“确定”:false,“错误代码”:504,“描述”:“网关超时”}

Sub telegram_SendPhoto()

    botid = Cells(1, 2) 'my bot id
    apikey = Cells(2, 2) 'token
    boundary = "287032381131322" 
    filebase64 = ConvertFileToBase64("C:\Users\youngsu.jeong\Desktop\3.png") 'local file to send

    strPostData = "--" & boundary & "\r\n" & "Content-Disposition: form-data; name=""chat_id""" & "\r\n" & "\r\n" & botid & "\r\n" & _
                  "--" & boundary & "\r\n" & "Content-Disposition: form-data; name=""photo""; filename=""1.txt""" & "\r\n" & _
                  "Content-Type: image/png" & "\r\n" & "\r\n" & filebase64 & "\r\n" & _
                  "--" & boundary & "--"

    Set objRequest = CreateObject("MSXML2.XMLHTTP")
    With objRequest
      .Open "POST", "https://api.telegram.org/bot" & apikey & "/sendPhoto?", False
      .SetRequestHeader "Content-Type", "multipart/form-data; boundary=287032381131322"
      .Send (strPostData)
       GetSessionId = .ResponseText
       Debug.Print GetSessionId
    End With

End Sub

Public Function ConvertFileToBase64(strFilePath As String) As String

    Const UseBinaryStreamType = 1

    Dim streamInput: Set streamInput = CreateObject("ADODB.Stream")
    Dim xmlDoc: Set xmlDoc = CreateObject("Microsoft.XMLDOM")
    Dim xmlElem: Set xmlElem = xmlDoc.createElement("tmp")

    streamInput.Open
    streamInput.Type = UseBinaryStreamType
    streamInput.LoadFromFile strFilePath
    xmlElem.DataType = "bin.base64"
    xmlElem.nodeTypedValue = streamInput.Read
    ConvertFileToBase64 = Replace(xmlElem.Text, vbLf, "")

    Set streamInput = Nothing
    Set xmlDoc = Nothing
    Set xmlElem = Nothing

End Function

strPostData如下所示

'-287032381131322内容处置:表格数据; name =“ chat_id”

842411059

-287032381131322

Content-Disposition:表单数据; name =“ photo”; filename =“ 1.png” 内容类型:image / png

iVBORw0KGgoAAAANSUhEUgAAAEAAAAAvCAYAAABTy8xRAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAANFSU​​RBVGhD7ZhfT9NQFMDR7yELYOL38MHEBxOf9AOIX8AY8QUVjYkvxgdBWQQJMwGnEYFNs2kcylQ2w7I / cerAgYmDGGFx4AD5E4 + 93e5sb8 + 9XaVby + xJfsnac0577o / 1rqGp6dEmEPaNbNkaOicPXp1uP / 1AC + 2KamgEXp1uP / 1AC + 2KamgEXp1uPy2wO + jwCnh1uv20wO6gwyvg1en20yQt5LH / 8XYFLF9rNIMzYD1KsB4ZmmQbWBwBNhfwz9CLszdkcQRYLEAPzcKqhTazF2RxBNhcgB6ahVNokm1gaWgBRmAvgNXsJRwB2EkRPAHseaMo71FPHAHYSRG8wdnzRlHeo544Apr9v8AIB3wbKrAau6MScPLtFhjhxJtNFViNndEIYO3wYP / yLFjPbnH5NytgeaM4AjAB2GKsgB2WUB8B42tQc5AFs7DDEuoi4LQnBLXk + PUH0NodkUSsowunsMMS6iIAahyTL1 / Bk9S8rgR2WELDCCDhT32RJEQ1Q4loKAEkfEnyTaheQsMJIEEeh7aeKWj2rUnDrCvAhzYToQCPxwODg4NcksmkXJfJZNC8EhperxcudHaWj / 5GSUKEkYAPbSZCAW63G3p7e7nEYjG5Lp1Oo3klNIiM8 + c6ykfq8EsSWrqlb8L / KoCELzkn7Qn0ccCHNhPbCSBBHoeD8p5Qm9dpJUIBMzMzQvL5vFxXKBTQvBIa2WwWhoeGykf8II9DW887zcBmIxRQq2B / BXjhk94TWgy + JxhFKCAajUIkEuGSy + XkuoWV7xD6PC2Exuv5BNy83wfeZ2MowXAIEvF4ha57fnD1pTWDm4Upe0Bs4RNcDQ0I + S1XAtwID8PlwB249NSNMpaYgGKxWCE6 + xVct6Y1g 1cD9nqthNRYIgDLUwKZSLmyFKncsiPAMgHBYBACgQAXsqOTyOZz8DD1QgiN8Q9hNE + JL2TKlaWwVACN7Z0dWFr9AR8X5 + D5 + ykYCI / ClTE3tPdfhMPXTsHqRrFcaX7sRkA1oAL6J0ega / Q2tN8tLfBQxzFoPXsUXGeOoCwWlmBxdVkIjW8 / 82iessLItEQAtkgRE7PT6POsxIo9oBocAXtbAPmniAisR40jQCNgC / 4ANLqlr8Ak7vkAAAAASUVORK5CYII =

-287032381131322-

0 个答案:

没有答案