ошибка времени выполнения vba '- 2146697208 800c0008)': загрузка указанного ресурса не удалась телеграмма - PullRequest
0 голосов
/ 07 февраля 2020

Запрос вашей помощи для решения проблемы ниже, я поражен в течение двух дней,

Ошибка времени выполнения VBA '- 2146697208 (800c0008)': загрузка указанного ресурса не удалась

Это мой код для справки:

Sub telebot15status155555()

   'Program Excel Messeger
   ' Purpose : Send Message to Telegram
   ' Author : John Eswin Nizar
   ' Date : 09 October 2017

    Dim objRequest As Object
    Dim strChatId As String
    Dim strMessage1 As String
    Dim strMessage2 As String
    Dim strPostData As String
    Dim strResponse As String

    strChatId = "@messstatus"
    strMessage1 = ""
    strMessage2 = Now()

    'strMessage = "hallo"

     strPostData = "chat_id=" & strChatId & "&text=" & strMessage1 & strMessage2

     Set objRequest = CreateObject("MSXML2.XMLHTTP")

     With objRequest
         .Open "POST", "https://api.telegram.org/sendMessage?", False
         .setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
         .send (strPostData)
         GetSessionId = .responseText
         MsgBox GetSessionId
     End With
End Sub

1 Ответ

0 голосов
/ 07 февраля 2020

Мой совет здесь - выполнить этот вызов API в Chrome с открытым DevTools. Или перейдите на страницу, где это происходит, и найдите запрос на вкладке «Сеть». Затем посмотрите на заголовки.

debug.print возвращает strPostData:

chat_id=@messstatus&text=2/7/2020 9:40:23 AM

Этот формат не выглядит правильным для API, который имеет форму urlencoded. Вам нужно увидеть, что сайт на самом деле отправляет и получает в DevTools, чтобы скопировать его.

IOW, ресурс не найден, потому что API неправильно отформатирован. Из базового API это выглядит как фактически QueryString, потому что он заканчивается на? это может означать, что вам нужно кодировать URL-адрес, отформатировать данные POST в QueryString для основного HTTP-запроса. Посмотрите здесь: Передайте параметры в VBA HTTP Post Request

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...