Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Подключение через API для получения плоской таблицы - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Подключение через API для получения плоской таблицы (Макросы/Sub)
Подключение через API для получения плоской таблицы
DJ_Marker_MC Дата: Воскресенье, 22.05.2016, 12:55 | Сообщение № 1
Группа: Друзья
Ранг: Ветеран
Сообщений: 980
Репутация: 211 ±
Замечаний: 0% ±

Excel 2010 SP2
Всем добрый день.
Друзья, я никогда с этим не сталкивался и чтение мануалов в сети совершено не помогло.
Я даже не уверен что это возможно в excel (хотя то на сколько я знаю ексель понимаю что в нем невозможного нет).
Мне нужно подключится каким то образом к сайту через API и в идеале с использованием прокси (индивидуальный прокси есть с логином, паролем и личным ip)
мануал к данному API находится тут (прошу не считать это за ссылку на другой сайт, так как без нее вопрос не полноценный).

Такое подключение мне нужно для того чтоб быстро получать статистику с сайта в развернутом виде по всевозможным там параметрам в виде плоской таблицы.

За правилами сайта (которые я неплохо знаю))) файл приложить не могу, так как по сути нету чего приложить.

Понимание всего этого выводит на мысль что в итоге должен получится макрос, с парой переменных для ввода:
логина/пароля или как в описании мануала токкена к сайту, а также переменные для обращения через прокси сервер.

Понимаю что вопрос не совсем стандартный для эксель, но если есть возможность в помощи заранее благодарю.
Если же вопрос относится к ряду сверх-сложных - буду благодарен не на словах :)


 
Ответить
СообщениеВсем добрый день.
Друзья, я никогда с этим не сталкивался и чтение мануалов в сети совершено не помогло.
Я даже не уверен что это возможно в excel (хотя то на сколько я знаю ексель понимаю что в нем невозможного нет).
Мне нужно подключится каким то образом к сайту через API и в идеале с использованием прокси (индивидуальный прокси есть с логином, паролем и личным ip)
мануал к данному API находится тут (прошу не считать это за ссылку на другой сайт, так как без нее вопрос не полноценный).

Такое подключение мне нужно для того чтоб быстро получать статистику с сайта в развернутом виде по всевозможным там параметрам в виде плоской таблицы.

За правилами сайта (которые я неплохо знаю))) файл приложить не могу, так как по сути нету чего приложить.

Понимание всего этого выводит на мысль что в итоге должен получится макрос, с парой переменных для ввода:
логина/пароля или как в описании мануала токкена к сайту, а также переменные для обращения через прокси сервер.

Понимаю что вопрос не совсем стандартный для эксель, но если есть возможность в помощи заранее благодарю.
Если же вопрос относится к ряду сверх-сложных - буду благодарен не на словах :)

Автор - DJ_Marker_MC
Дата добавления - 22.05.2016 в 12:55
SLAVICK Дата: Воскресенье, 22.05.2016, 13:42 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 1923
Репутация: 650 ±
Замечаний: 0% ±

2007,2010,2013,2016
DJ_Marker_MC,
почитайте тут и там же есть еще что почитать.


Иногда все проще чем кажется с первого взгляда.
 
Ответить
СообщениеDJ_Marker_MC,
почитайте тут и там же есть еще что почитать.

Автор - SLAVICK
Дата добавления - 22.05.2016 в 13:42
doober Дата: Воскресенье, 22.05.2016, 15:45 | Сообщение № 3
Группа: Друзья
Ранг: Обитатель
Сообщений: 330
Репутация: 179 ±
Замечаний: 0% ±

Excel 2007
Направление дам,сейчас нет времени вникать детально.
Токен и тип получаю, с авторизацией не получилось.
Ответ-искаженная форма авторизации[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
[/vba]

Автор - doober
Дата добавления - 22.05.2016 в 15:45
DJ_Marker_MC Дата: Воскресенье, 22.05.2016, 22:49 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 980
Репутация: 211 ±
Замечаний: 0% ±

Excel 2010 SP2
SLAVICK, doober, Спасибо за направление и помощь.
Попробую посидеть разобраться в этом и все же добить до нужного результата.


 
Ответить
СообщениеSLAVICK, doober, Спасибо за направление и помощь.
Попробую посидеть разобраться в этом и все же добить до нужного результата.

Автор - DJ_Marker_MC
Дата добавления - 22.05.2016 в 22:49
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Подключение через API для получения плоской таблицы (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2017 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!