R/MP.getRawData.R

Defines functions MP.getRawData

Documented in MP.getRawData

MP.getRawData <- function(api_secret = NULL,
                          event = NULL,
                          where = NULL,
                          from_date = "2017-07-10",
                          to_date = "2017-07-10"){
  #Âðåìÿ íààëà ðàáîòû ôóíêöèè
  start_time <- Sys.time()

  if(!is.null(event)){
    event <- toJSON(event)
  }
  
  #Ôîðìèðîâàíèå çàïðîñà
  query_string <- paste0('https://',api_secret,'@data.mixpanel.com/api/2.0/export/?',
                         ifelse(is.null(event),'',paste0('event=',event)),
                         ifelse(is.null(where),'',paste0('&where=',gsub(pattern = " ",  x =  where,replacement =  "%20"))),
                         ifelse(is.null(from_date),'',paste0('&from_date=',from_date)),
                         ifelse(is.null(to_date),'',paste0('&to_date=',to_date)))
  
  
  #Îòïðàâêà çàïðîñà ê API
  api_answer <- GET(query_string)
  stop_for_status(api_answer)
  
  #ïàðñèíã ðåçóëüòàòà
  #Ïðåîáðàçóåì êîðÿâûé json â íîðìàëüíûé, íåîáõîäèìî âñå ñîáûòèÿ çàâåðíóòü â ìàññèâ
  mixpanelrawdata <- fromJSON(paste0("[",gsub(",
$","]",gsub("}}", "}},", content(api_answer,as = "text" )))))
  
  #Âðåìÿ îêîí÷àíèÿ ðàáîòû ôóíêöèè
  stop_time <- Sys.time()
  
  #Äëèòåëüíîñòü ðàáîò
  duration_sec <- round(difftime(stop_time, start_time , units ="secs"),0)
  
  #Âûâîäèì ñîîáùåíèå î ðàáîòå ôóíêöèè
  packageStartupMessage(paste0("Function work durations: ",duration_sec," sec."))
  packageStartupMessage(paste0("Number of loaded rows: ",nrow(mixpanelrawdata)))
  #Âîçâðàùàåì ãîòîâûé äàòà ôðåéì
  return(mixpanelrawdata)}
selesnow/rmixpanel documentation built on May 26, 2021, 10:04 a.m.