Всем добрый день. Друзья, я никогда с этим не сталкивался и чтение мануалов в сети совершено не помогло. Я даже не уверен что это возможно в excel (хотя то на сколько я знаю ексель понимаю что в нем невозможного нет). Мне нужно подключится каким то образом к сайту через API и в идеале с использованием прокси (индивидуальный прокси есть с логином, паролем и личным ip) мануал к данному API находится тут (прошу не считать это за ссылку на другой сайт, так как без нее вопрос не полноценный).
Такое подключение мне нужно для того чтоб быстро получать статистику с сайта в развернутом виде по всевозможным там параметрам в виде плоской таблицы.
За правилами сайта (которые я неплохо знаю))) файл приложить не могу, так как по сути нету чего приложить.
Понимание всего этого выводит на мысль что в итоге должен получится макрос, с парой переменных для ввода: логина/пароля или как в описании мануала токкена к сайту, а также переменные для обращения через прокси сервер.
Понимаю что вопрос не совсем стандартный для эксель, но если есть возможность в помощи заранее благодарю. Если же вопрос относится к ряду сверх-сложных - буду благодарен не на словах
Всем добрый день. Друзья, я никогда с этим не сталкивался и чтение мануалов в сети совершено не помогло. Я даже не уверен что это возможно в excel (хотя то на сколько я знаю ексель понимаю что в нем невозможного нет). Мне нужно подключится каким то образом к сайту через API и в идеале с использованием прокси (индивидуальный прокси есть с логином, паролем и личным ip) мануал к данному API находится тут (прошу не считать это за ссылку на другой сайт, так как без нее вопрос не полноценный).
Такое подключение мне нужно для того чтоб быстро получать статистику с сайта в развернутом виде по всевозможным там параметрам в виде плоской таблицы.
За правилами сайта (которые я неплохо знаю))) файл приложить не могу, так как по сути нету чего приложить.
Понимание всего этого выводит на мысль что в итоге должен получится макрос, с парой переменных для ввода: логина/пароля или как в описании мануала токкена к сайту, а также переменные для обращения через прокси сервер.
Понимаю что вопрос не совсем стандартный для эксель, но если есть возможность в помощи заранее благодарю. Если же вопрос относится к ряду сверх-сложных - буду благодарен не на словах DJ_Marker_MC
Направление дам,сейчас нет времени вникать детально. Токен и тип получаю, с авторизацией не получилось. Ответ-искаженная форма авторизации[vba]
Код
Function ReadToken(s) Dim X() ReDim X(0) s = Replace(s, Chr(34), "") bRes = False Set RegExp = CreateObject("VBScript.RegExp") RegExp.IgnoreCase = True RegExp.Pattern = "token\:(.+?),type\:(.+?),expires_in\:(.+?)"
bRes = RegExp.test(s) If bRes Then Set oMatches = RegExp.Execute(s) ReDim X(2) X(0) = oMatches(0).subMatches(0) X(1) = oMatches(0).subMatches(1) X(2) = oMatches(0).subMatches(2) End If ReadToken = X
End Function
Function GetHTTPResponse(ByVal Id As Long) As String ' On Error Resume Next Const username = "username" Const password = "password" sURL = "https://api.exoclick.com/v1/login" Set oXMLHTTP = CreateObject("WinHttp.WinHttpRequest.5.1") With oXMLHTTP .Open "Post", sURL, False .setRequestHeader "Content-Type", "application/json" params = "{""username"":" & Chr(34) & username & Chr(34) & ", ""password"":" & _ Chr(34) & password & Chr(34) & "}" .send params If .Status = 200 Then Response = .ResponseText Token = ReadToken(Response) Authorization = "{""type"":" & Chr(34) & Token(1) & _ Chr(34) & ",""token"":" & Chr(34) & Token(0) & Chr(34) & "}" .abort sURL = "https://api.exoclick.com/v1/statistics/advertiser/date" params = "{""campaignid"":" & Id & "}" .Open "GET", sURL, False .setRequestHeader "Content-Type", "application/json" .setRequestHeader "Authorization", Authorization .send params GetHTTPResponse = .ResponseText End If End With Set oXMLHTTP = Nothing End Function
[/vba]
Направление дам,сейчас нет времени вникать детально. Токен и тип получаю, с авторизацией не получилось. Ответ-искаженная форма авторизации[vba]
Код
Function ReadToken(s) Dim X() ReDim X(0) s = Replace(s, Chr(34), "") bRes = False Set RegExp = CreateObject("VBScript.RegExp") RegExp.IgnoreCase = True RegExp.Pattern = "token\:(.+?),type\:(.+?),expires_in\:(.+?)"
bRes = RegExp.test(s) If bRes Then Set oMatches = RegExp.Execute(s) ReDim X(2) X(0) = oMatches(0).subMatches(0) X(1) = oMatches(0).subMatches(1) X(2) = oMatches(0).subMatches(2) End If ReadToken = X
End Function
Function GetHTTPResponse(ByVal Id As Long) As String ' On Error Resume Next Const username = "username" Const password = "password" sURL = "https://api.exoclick.com/v1/login" Set oXMLHTTP = CreateObject("WinHttp.WinHttpRequest.5.1") With oXMLHTTP .Open "Post", sURL, False .setRequestHeader "Content-Type", "application/json" params = "{""username"":" & Chr(34) & username & Chr(34) & ", ""password"":" & _ Chr(34) & password & Chr(34) & "}" .send params If .Status = 200 Then Response = .ResponseText Token = ReadToken(Response) Authorization = "{""type"":" & Chr(34) & Token(1) & _ Chr(34) & ",""token"":" & Chr(34) & Token(0) & Chr(34) & "}" .abort sURL = "https://api.exoclick.com/v1/statistics/advertiser/date" params = "{""campaignid"":" & Id & "}" .Open "GET", sURL, False .setRequestHeader "Content-Type", "application/json" .setRequestHeader "Authorization", Authorization .send params GetHTTPResponse = .ResponseText End If End With Set oXMLHTTP = Nothing End Function