Импорт CSV из вывода API в Google - PullRequest
1 голос
/ 29 сентября 2019

Я абсолютно не знаю, что я делаю, но я пытаюсь импортировать данные CSV из вывода API в листы Google.

Данные, которые я хочу импортировать, - это данные о бронировании, которые были сгенерированы какCSV-файл, и мне просто нужно импортировать все данные в первый раз, а затем обновить его (не нужно повторно импортировать все данные за прошлый год)

URL-адрес API:

https://www.beds24.com/api/csv/getbookingscsv

Мне нужно, однако, ввести свое имя пользователя и пароль и, если необходимо, диапазон дат.

Так что в моей голове это будет: Один сценарий длягод бронирования импорт

username    XXXXX
password    •••••
datefrom    
dateto  

Один скрипт для импорта бронирования на день, используя диапазон дат

username    XXXXX
password    •••••
datefrom    2019-09-29
dateto      2019-09-29

Первый взгляд, который я сделал, используя googlescript, обнаружил, что мне, вероятно, понадобится что-то подобное:

function importCSV() {
   var var bookings = beds24api.beds24GetBookings(prop_key, data_option);
   var res = UrlFetchApp.fetch("https://www.beds24.com/api/csv/getbookingscsv");  
   var content = res.getContentText();
   var authentication = {
       'authentication' : {
         'username' : XXXXX,
         'password' : •••••
       };
   };
}
function beds24GetBookingsCSV(username, password, data_option){
    return beds24JsonApi('https://www.beds24.com/api/csv/getbookingscsv',username, password, data_option);
    };
    return {
        beds24GetBookings: beds24GetBookingsCSV,
    };
}

Многие из вас получат кровоточащие глаза из этого кода, но если бы я мог получить некоторую помощь в достижении этого, это было бы здорово!

Ответы [ 2 ]

0 голосов
/ 29 сентября 2019

  String url = "https://www.beds24.com/api/csv/getbookingscsv";
        URL obj = new URL(url);
        HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();

        con.setRequestMethod("POST");

        String params = "username=XXX&password=YYY";

        con.setDoOutput(true);
        DataOutputStream wr = new DataOutputStream(con.getOutputStream());
        wr.writeBytes(params);
        wr.flush();

        BufferedReader in = new BufferedReader( new InputStreamReader(con.getInputStream()));
       
        StringBuilder response = new StringBuilder();

        String inputLine;
        while ((inputLine = in.readLine()) != null) {
            response.append(inputLine);
        }
        System.out.println(response.toString());
# Function to get data from Beds24 API
getBeds24Data <-function(username = property_mgmt$username,
                         password = property_mgmt$password,
                         datefrom = "2019-01-01",
                         dateto = "2019-12-30"){
  url <- "https://www.beds24.com/api/csv/getbookingscsv"

  response <- httr::POST(url=url, body = list("username" = username,
                                              "password"=password,
                                              datefrom = datefrom,
                                              dateto = dateto))
  beds24Data <- httr::content(response,type='text/csv',col_names=T,col_types=NULL)
  return(beds24Data)
} 
0 голосов
/ 29 сентября 2019

У меня нет опыта с кроватями24, и я не хочу.Но если вы посмотрите здесь , вы найдете пример UrlFetchApp.fetch(url, options);.Я считаю, что вам нужно будет включить ваши данные аутентификации в объект параметров или включить их в качестве элементов строки запроса в URL.Посмотрите на кровати 24 есть пример скрипта Google Apps или, возможно, пример Javascript.

...